하나의 라우터에는 여러 미들웨어가 있고, 다양한 라이브러리가 사용된다.
이러한 것들이 모두 유기적으로 잘 작동하는지 테스트 하는 것이 통합 테스트이다.
동일하게 snsservice 의 라우터를 통째로 테스트한다고 가정한다.
먼저 supertest 모듈을 설치한다.
$ npm i -D supertest
그리고 테스트용 데이터베이스를 설정한다.
통합 테스트에서는 데이터베이스 코드를 모킹하지 않으므로 실제 테스트 데이터가 저장된다.
따라서 테스트용 데이터베이스를 별도로 생성하는 것이 좋다.
config/config.json 에서 test 속성을 수정한다.
{
"development": {
"username": "root",
"password": "nodejsbook",
"database": "snsservice",
"host": "127.0.0.1",
"dialect": "mysql"
},
"test": {
"username": "root",
"password": "비밀번호",
"database": "snsservice_test",
"host": "127.0.0.1",
"dialect": "mysql"
},
...
}
CLI 에서 test 용 데이터베이스를 생성하는 명령어를 입력한다.
$ npx sequelize db:create --env test