- Express 개발 환경에서의 테스트 코드 작성 연습
- 테스트 모듈 : jest, supertest
$ npm i -D jest supertest
{
"scripts": {
"test": "jest --coverage"
}
}- 테스트하고자 하는 파일은 반드시
*.spec.js또는*.test.js로 끝나야 한다. 본 연습 과정에서 단위 테스트는*.test.js, 통합 테스트는*.spec.js로 저장하였다. - 통합 테스트를 진행할 때에는
app.listen부분을 따로 빼주어야 한다. 즉, 테스트가 실행되어app의router에 접근하기도 전에listen상태가 되면 테스트 부분에서app의router에 접근할 수 없다.
/* app.js */
const app = express();
app.use('/api', routers);
// app.listen(port, () => console.log('Server running...'));
module.exports = app;/* bin/www.js */
const app = require('../app.js');
app.listen(port, () => console.log('Server Running...'));/* app.spec.js */
const request = require('supertest');
const app = require('../../app');$ git clone https://github.com/NODE-pro/TDD-tutorial.git
$ cd TDD-tutorial
$ npm install
$ npm test