jest는 자바스크립트 코드를 위한 테스팅 프레임워크 중 하나이다.
Babel, Typescript, Node 등의 환경 및 React, Angular, Nest 등 프레임워크에서도 지원한다고 한다.
나같은 경우는 nestjs에서 내부적으로 테스팅에 사용되는 것을 알고, 어떻게 사용해야하는지 궁금하여 알아보게 되었다.
설치
자바스크립트 사용
npm install --save-dev jest
타입스크립트 사용
//CLI
npm install --save-dev jest @types/jest ts-jest
//package.json
"jest": {
"roots": [
"<rootDir>/src"
],
"testMatch": [
"**/__tests__/**/*.+(ts|tsx|js)",
"**/?(*.)+(spec|test).+(ts|tsx|js)"
],
"transform": {
"^.+\\.(ts|tsx)$": "ts-jest"
}
}
"scripts": {
"jest-test": "jest --watch"
},
패키지 설치
- jest : 테스팅 프레임워크.
- @types/jest : jest에 대한 type 제공.
- ts-jest : typescript 코드의 transform에 사용. babel도 사용할 수 있다.
https://jestjs.io/docs/getting-started#using-typescript
package.json에 설정 추가
- root : 테스트 파일을 검색하는 위치로, 여러개를 설정할 수 있다.
- testMatch : 인식하는 테스트 파일의 이름.
- transform : typescript 코드를 jest에서 사용하기 위한 변환기. 직접 구현할 수도 있다.
https://jestjs.io/docs/code-transformation#writing-custom-transformers
사용법
기본 구조는 다음과 같다.
describe('Space', () => {
beforeEach(() => {
//something before each
});
beforeAll(() => {
//something before All
});
afterEach(() => {
//something after each
});
afterAll(() => {
//something after All
});
it('some message / test case1', () => {
expect(target).toBe(expected);
});
it('some message test case2', () => {
expect(target).toBe(expected);
});
...
});
describe
: 'Space'로 대표되는 공간을 만든다.beforeEach/afterEach
: describe 내의 테스트케이스 각각에 대해 실행 전/후에 전달된 callback을 실행한다.beforeAll/afterAll
: describe 내의 모든 테스트가 시작되기 전/ 끝난 후에 전달된 callback을 실행한다.expect
: 특정 값에 대한 조건을 걸어준다. expect(A).toBe(3). 이면, A == 3인지 검사한다.
'javascript > 이외' 카테고리의 다른 글
[javascript] Ajv 라이브러리 (0) | 2023.09.25 |
---|---|
[jest] 동일 파일 내의 함수 mocking하기 (0) | 2023.08.23 |
[nestjs] DI token (0) | 2023.07.25 |
mermaid.js - 프론트엔드에서 UML을 그리는 라이브러리 (0) | 2023.02.02 |
node redis : 노드 환경에서 사용하는 redis 데이터베이스 (0) | 2022.03.06 |