- 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