NestJS · · 1 min read
17. 테스트 자동화
NestJS는 Jest 기반 테스트를 기본 제공한다. 단위 테스트는 프로바이더 로직을, e2e 테스트는 요청→응답 전체 흐름을 검증한다.
17.1. 단위 테스트
Test.createTestingModule 로 테스트용 모듈을 구성하고 의존성을 모킹한다.
describe('UsersService', () => {
let service: UsersService;
beforeEach(async () => {
const module = await Test.createTestingModule({
providers: [UsersService],
}).compile();
service = module.get(UsersService);
});
it('should return users', () => {
expect(service.findAll()).toEqual([]);
});
});
17.2. 모킹
외부 의존성(리포지토리 등)은 목 객체로 대체해 로직만 검증한다.
{ provide: getRepositoryToken(User), useValue: { find: jest.fn() } }
17.3. e2e 테스트
const app = moduleFixture.createNestApplication();
await app.init();
return request(app.getHttpServer())
.get('/users')
.expect(200);
17.4. 실행
npm run test # 단위 테스트
npm run test:e2e # e2e 테스트
npm run test:cov # 커버리지