JEST (Test Code, Testing Framework)
npm install jest -D
npm install jest supertest -D
// package.json
{
...
"scripts": {
...
"test": "NODE_ENV=test jest --forceExit",
"test:silent": "NODE_ENV=test jest --silent --forceExit",
"test:coverage": "NODE_ENV=test jest --coverage --forceExit",
"test:unit": "NODE_ENV=test jest __tests__/unit --forceExit",
"test:integration": "NODE_ENV=test jest __tests__/integration --forceExit"
},
--forceExit : 테스트 코드 검사가 완료되었을 때 강제로 Jest 종료. express의 app 객체와 시퀄라이즈 연결이 connect 상태로 남아있어 테스트 코드가 종료되지 않을 때 사용
--silent : 테스트 코드를 실행했을 때, console.log 와 같은 메시지를 출력하지 않음
--coverage : 테스트 코드 검사가 완료된 후 현재 프로젝트의 테스트 코드 커버리지를 출력해줌.
--verbose : 테스트 코드의 개별 테스트 결과를 표시
afterAll(fn, timeout) : 모든 test()가 완료된 이후에 수행. 테스트가 완료된 이후 데이터베이스에 변경된 데이터를 삭제하거나 Mock을 초기화 하기 위해 사용
afterEach(fn, timeout) : test()가 완료된 이후에 수행. 테스트코드가 완료된 이후 Mock또는 변경된 전역 변수를 초기화 할 때 사용
beforeAll(fn, Timeout) : 테스트코드가 실행되기 전 가장 처음 수행. 데이터베이스의 데이터를 초기화하거나 전역 Mock를 초기화할 때 사용
beforeEach(fn, timeout) : test()가 실행되기 전에 수행. 테스트가 실행되기 전, 동일한 설정을 반복해야 할 때 사용
순서 : beforeAll -> beforeEach -> afterEach -> afterAll
Global Jest 자세히보기