대상 고립
테스트할 service 하나를 정하고 외부 repository와 API client는 대체한다.
NestJS 단위 테스트는 TestingModule을 띄우는 형식보다, 테스트 대상 provider와 협력 provider를 분리해 도메인 규칙을 빠르게 검증하는 데 목적이 있다.
테스트할 service 하나를 정하고 외부 repository와 API client는 대체한다.
Test.createTestingModule에서 provider와 mock implementation을 주입한다.
성공, not found, conflict, validation 실패 같은 경로를 나눠 호출한다.
반환 DTO와 예외 타입, repository 호출 인자를 확인한다.
const moduleRef = await Test.createTestingModule({
providers: [OrdersService, { provide: OrdersRepo, useValue: repoMock }],
}).compile();