반응형
mocha란
- 모카(mocha) : 테스트 코드를 돌려주는 테스트 러너.
- 테스트 수트: 테스트 환경으로 모카에서는 describe()으로 구현.
- 테스트 케이스: 실제 테스트를 말하며 모카에서는 it()으로 구현.
mocha 설치
npm install --save-dev mocha
Should
- 노스 공식문에서 노드 assert 말고 서드파티 라이브러리(should 등) 사용 권장
- 검증(assertion) 라이브러리
- 가독성 높은 테스트 코드 작성 가능
Should 설치
npm install --save-dev should
참고 : https://github.com/shouldjs/should.js
SuperTest
- 단위 테스트: 함수의 기능 테스트
- 통합 테스트: API의 기능 테스트
- 익스프레스 통합 테스트용 라이브러리
- 내부적으로 익스프레스 서버를 구동시켜 실제 요청을 보낸 뒤 결과를 검증
SuperTest 설치
npm install --save-dev supertest
반응형
테스트 예제 코드
const request = require('supertest');
const should = require('should');
const app = require('../../');
const models = require('../../models');
describe('GET /users는', ()=> {
const users = [{name: 'alice'}, {name: 'bek'}, {name: 'chris'}];
before(()=>models.sequelize.sync({force: true}));
before(()=> models.User.bulkCreate(users));
describe('성공시', ()=> {
it('유저 객체를 담은 배열로 응답한다 ', (done)=> {
request(app)
.get('/users')
.end((err, res) => {
res.body.should.be.instanceOf(Array);
done();
});
});
it('최대 limit 갯수만큼 응답한다 ', (done) => {
request(app)
.get('/users?limit=2')
.end((err, res) => {
res.body.should.have.lengthOf(2)
done();
});
});
});
describe('실패시', ()=> {
it('limit이 숫자형이 아니면 400을 응답한다', (done) => {
request(app)
.get('/users?limit=two')
.expect(400)
.end(done);
})
})
});
Thank you!
반응형