-
테스트 주도 개발 (TDD)웹프로그래밍/node.js 2019. 6. 3. 16:23
모카(mocha)
모카(mocha)는 테스트 코드를 돌려주는 테스트 러너이다. 노드가 바로 테스트 코드를 실행 시킬 수 없다.
- 테스트 수트 : 테스트 환경으로 모카에서는 describe()으로 구현한다.
- 테스트 케이스 : 실제 테스트를 말하며 모카에서는 it()으로 구현한다.
mocha 설치 : npm i -g mocha
utils.spec.js 코드 (테스트 코드,,,,요구사항)
//spec이 들어가면 test코드이다. 요구사항 const utils = require('./utils'); const should = require('should'); // const assert = require('assert'); describe('utils.js모듈의 capitalize() 함수는', ()=> { it('문자열의 첫번째 문자를 대문자로 변환한다', ()=> { const result = utils.capitialize('hello'); // assert.equal(result,'Hello'); result.should.be.equal('Hello'); //should js로 테스트코드의 가독성을 높힌다. }) // 테스트 케이스 }) // 테스트 수트
utils.js 코드
function capitialize(str) { return str.charAt(0).toUpperCase() + str.slice(1); // return str; } module.exports = { capitialize: capitialize };
▶ assert는 노드의 기본 검증 모듈
▶ 슈드(should)는 검증(assertion) 라이브러리다.
슈퍼 테스트
단위테스트: 함수의 기능 테스트 ex) assert, should
통합테스트 : API의 기능 테스트
슈퍼테스트: 익스프레스 통합 테스트용 라이브러리
내부적으로 익스프레스 서버를 구동시켜 실제 요청을 보낸 뒤 결과를 검증한다.
index.spec.js 코드 (테스트 코드,,,,요구사항)
const app = require('./index'); const request = require('supertest'); describe('GET /users는', ()=> { it('...', (done)=> { //비동기에 대한 처리 request(app) .get('/users') .end((err, res)=> { console.log(res.body); done(); }) }) })
index.js
var express = require('express'); var app = express(); var morgan = require('morgan'); var users = [ {id: 1, name: 'alice'}, {id: 2, name: 'bek'}, {id: 3, name: 'chris'}, ]; app.use(morgan('dev')); app.get('/users', function (req, res) { res.json(users); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); }); module.exports = app;
모카 참고 : https://mochajs.org/
Should.js 참고 : https://github.com/tj/should.js/
슈퍼테스트 코드 참고 : https://github.com/visionmedia/supertest
'웹프로그래밍 > node.js' 카테고리의 다른 글
사용자 추가 API 성공, 실패시 (0) 2019.06.03 사용자 삭제 API 성공, 실패시 (0) 2019.06.03 사용자 조회 API 성공, 실패시 (0) 2019.06.03 첫 API 테스트 만들기 (0) 2019.06.03 익스프레스(ExpressJS) 기초 (0) 2019.06.03 댓글