Jest를 사용하여 코드를 테스트하면 많은 이점이 있습니다.
-
사용하기 쉬움: Jest는 간결한 API와 친숙한 명령줄 인터페이스를 제공하므로 테스트 코드를 작성하고 실행하는 것이 매우 쉽습니다. 어설션 구문은 명확하고 간결하여 테스트 사례 작성에 드는 노력을 줄여줍니다.
-
자동화 및 통합: Jest는 테스트 케이스를 자동으로 실행하고 풍부한 보고서와 통계를 제공할 수 있습니다. 또한 지속적인 통합 도구(예: Jenkins, Travis CI 등)와 통합되어 테스트 프로세스를 보다 자동화되고 안정적으로 만들 수도 있습니다.
-
빠르고 효율적: Jest는 테스트 케이스를 병렬로 실행하는 전략을 채택하여 많은 양의 테스트 코드를 더 빠르게 실행할 수 있습니다. 또한 Jest는 지능형 파일 모니터링 기능을 갖추고 영향을 받는 테스트 케이스만 실행하므로 개발 효율성이 향상됩니다.
-
풍부한 내장 기능: Jest에는 조롱, 커버리지 보고, 스냅샷 테스트 등과 같은 많은 내장 기능이 있습니다. 이러한 기능을 사용하면 포괄적인 테스트 모음을 더 쉽게 작성할 수 있으며 코드를 더 잘 이해하고 유지 관리하는 데 도움이 됩니다.
-
커뮤니티 지원: Jest는 대규모 커뮤니티 지원을 받는 매우 활동적인 오픈 소스 프로젝트입니다. 커뮤니티에서 풍부한 리소스, 학습 자료, 질문과 답변을 얻을 수 있으므로 Jest를 테스트 개발에 더 잘 사용할 수 있습니다.
1. Jest 및 관련 종속성 설치
npm install --save-dev @nestjs/testing jest
2. 테스트 폴더 생성: 테스트 파일을 저장할 프로젝트의 루트 디렉터리에 test
or 라는 tests
폴더를 생성합니다.
3. 테스트 케이스 작성: 일반적 으로 또는 test
로 이름이 지정된 폴더에 테스트 파일을 만듭니다 . 테스트 파일에 테스트 사례 작성<filename>.spec.ts
<filename>.test.ts
app.controller.spec.ts
다음은 간단한 예입니다.
import { Test } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';
describe('AppController', () => {
let appController: AppController;
beforeEach(async () => {
const app = await Test.createTestingModule({
controllers: [AppController],
providers: [AppService],
}).compile();
appController = app.get<AppController>(AppController);
});
describe('root', () => {
it('should return "Hello World!"', () => {
expect(appController.getHello()).toBe('Hello World!');
});
});
});
4. 테스트 실행: 명령줄에서 명령을 실행하여 jest
테스트를 실행합니다.
npx jest
Jest는 모든 테스트 케이스를 실행하고 실행 결과를 출력합니다.
위의 단계를 통해 NestJS에서 코드 테스트에 Jest를 사용할 수 있습니다. 다양한 상황에서 코드가 올바르게 작동하는지 확인하기 위해 추가 테스트 사례를 작성하고 실행할 수 있습니다. 테스트는 코드 품질과 안정성을 보장하는 중요한 수단입니다. 테스트에 Jest를 사용하면 NestJS 애플리케이션을 더 잘 개발하고 유지하는 데 도움이 될 수 있습니다.