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의결과를 시나리오대로 테스트해보는것이다.

설치방법

npm install express --save 로 설치

 

express의 사용이유

어플리케이션

- 익스프레스 객체를 어플리케이션이라고 한다.

- 서버에 필요한 미들웨어를 추가한다.

- 라우팅 설정을 할 수 있다.

- 서버를 요청 대기상태로 한다.

미들웨어

- 서버에기능을 추가하고 싶을때 사용하는 함수들의 배열이다.

 

라우팅

- 여러가지 URL로 들어올때 응답을 설정한다.

 

요청객체

- request로 생각하면된다. request를 한번더 감싼다.

응답객체

- response로 생각하면된다. response를 한번더 감싼다.

 

use로 미들웨어를 사용한다.

 

//미들웨어 만들기

function logger(req, res, next){

    console.log("Test");

    next();

}



app.use(logger);

 

next(); 를 선언해야 다음 미들웨어도 동작한다.

 

express실행하기

Port번호를 설정하고 실행해야한다.

var express = require('express');
var app = express();
//중간 로직
app.listen('3000', function (){
    console.log('apiServerStart');
})

+ Recent posts