TDD 테스트 주도 개발이란?
개발을 먼저하지 않고 테스트코드를 먼저 만든다.
시간이 많이 걸리는 단점은 있지만 프로젝트를 유지보수할때 큰효과가 나타난다.
mocha,should는 단위테스트이다.
Ex)함수테스트 : 함수별로 테스트한다.
mocha 모카란?
테스트에 사용하는 라이브러리
테스트 코드를 작성하면 테스트를 실행시켜주는것
테스트수트 : 테스트 환경을 꾸며준다. describe()를 사용한다.
테스트케이스 : 실제 테스트를 말하며 모카에서는 it()을 구현한다.
설치방법 : Npm install mocha —saver-dev
-dev : -dev를 하면 개발환경에서 필요하다는 말이다.
테스트 실행방법
node_modules/.bin/mocha [테스트파일명] 를 실행한다.
테스트 코드
const utils = require('./testUtils.js');
const assert = require('assert');
//mocha는 node로 실행할 수 없다.
describe('utils.js모듈의 capitialize 함수', ()=>{
it('문자열 첫번째 문자를 대문자로 변환한다.', () =>{
//테스트 코드 작성
const result = utils.capitialize('hello');
assert.equal(result, 'Hello');
})
it('문자열 첫번째 문자를 소문자로 변환한다.', () =>{
//테스트 코드 작성
const result = utils.capitialize('hello');
assert.equal(result, 'hello');
})
})
Should.js
테스트에 사용하는 라이브러리
슈드는 검증 라이브러리 이다.
예제 목록:https://github.com/tj/should.js/
설치하기: npm I should —save-dev
테스트 코드
const utils = require('./testUtils.js');
const should = require('should');
//mocha는 node로 실행할 수 없다.
describe('utils.js모듈의 capitialize 함수', ()=>{
it('문자열 첫번째 문자를 대문자로 변환한다.', () =>{
//테스트 코드 작성
const result = utils.capitialize('hello');
result.should.be.equal('Hello');
})
it('문자열 첫번째 문자를 소문자로 변환한다.', () =>{
//테스트 코드 작성
const result = utils.capitialize('hello');
result.should.be.equal(result, 'hello');
})
})
슈퍼테스트
통합테스트에 사용한다.
Ex)api의 기능테스트
내부적으로 express를 구동시키고 테스트코드에서 작성된 시나리오대로 결과를 검증한다.
예제:https://github.com/visionmedia/supertest
설치하기:npm I supertest —save-dev
const request = require('supertest');
const express = require('express');
const app = express();
app.get('/user', function(req, res) {
res.status(200).json({ name: 'john' });
});
request(app)
.get('/user')
.expect('Content-Type', /json/)
.expect('Content-Length', '15')
.expect(200)
.end(function(err, res) {
if (err) throw err;
});
예제처럼 API의결과를 시나리오대로 테스트해보는것이다.
'개발 소발 > 개발 javascript(기초)' 카테고리의 다른 글
node.js express의 기초개념 (0) | 2020.08.06 |
---|---|
javascript var와 let의 차이,const란? (0) | 2019.03.05 |
ECMAScript6 ES6 식별자,리터럴,원시타입,이스케이프 란? (0) | 2019.01.16 |
jQuery checkbox 체크시 상위로 올리기 (0) | 2018.09.13 |