javascript 테스트 코드를 작성하도록 도와주는 프레임워크는 여러가지가 있다. 예를 들어 Mocha, Chai, Jest 등등이 있는데 거기서 Jest를 이용해보자
필자는 express & typescript로 구성되어있다!
일단 필요한 라이브러리들을 설치해준다.
npm i --save-dev jest supertest ts-jest @types/jest node-mocks-http
supertest같은 경우는 통합 테스트용
node-mocks-http는 단위 테스트용이다.
차차 알아가보도록 하자
⭐ --detectOpenHandles: 비동기방식으로 jest를 운영할 때 테스트는 끝났지만 계속 실행되고 있는 작업을 볼 수 있다.
⭐ --forceExit: jest는 test가 끝나도 바로 멈추지 않고 유지된다. 그래서 테스트가 끝나면 강제로 나가게 하는 옵션이다.
다른 사람들은 ES6를 ES5로 변환하기 위해 babel을 이용했지만 필자는 typescript에 바로 jest를 할것이기 때문에 jest.config.js만 둘 것이다.
이 설정은 package.json에 해주어도 무관하다!
위치는 app.ts와 같은 위치에 두면 된다!
module.exports = {
testEnvironment: "node",
bail: true,
verbose: true,
testRegex: "(/tests/.*[.](test|spec))\\.(ts|tsx|js)$",
moduleFileExtensions: ["js", "json", "jsx", "ts", "tsx", "json"],
transformIgnorePatterns: ["<rootDir>/node_modules/"],
coveragePathIgnorePatterns: ["/node_modules/"],
transform: { "^.+\\.ts$": "ts-jest" },
globals: { "ts-jest": { diagnostics: true } },
};
여기까지가 tdd를 위해 jest를 설치하고 설정하는 법이었다.
설정방법은 정말 많아서 많이 혼란스럽고 어려웠지만 자신에게 맞는 설정방법을 다들 찾길 바란다!