mocha

mocha는 Javascript Testing Tool이다.

Installation

$ npm install mocha --global

테스트 코드는 .spec.js로 관리하여 -w를 추가하여 실행하여 파일 변경시 자동으로 테스트 러너가 실행된다

$ mocha

test

describe()으로 테스트 suite을 만들고 그 안에 it()으로 테스트 코드를 작성한다. descirbe()은 중첩해서 사용할 수 있다.

Asynchronous

it()에 사용하는 함수에 파라미터로 done을 전달하면 자동으로 비동기 테스트로 인식하고 비동기 로직이 완료된 시점에서 파라미터로 받은 done()을 실행해 주면 테스트가 완료된다. assertion은 done()을 실행하기 전에 작성하면 됩니다. done()을 실행하지 않으면 기본 타임아웃인 2000ms후에 타임아웃 실패로 간주합니다.

done() 이라는 콜백 함수를 비동기 코드가 정상적으로 완료되었을 때 호출하면 된다. done()이 호출되지 않는다면 설정된 기본 timeout 시간으로 2ms 후에 실패로 간주된다.

before(function(){
  console.log('before');
});
 
it('test spec', function(done){
  // do the test
  console.log(1);
  done();
});
 
after(function(){
  console.log('after');
});

mocha --timeout 3000 처럼 timeout 값을 변경할 수 있다.

Hooks

테스트 케이스의 상황에 따라 실행되어야 하는 부분을 설정할 때 사용

describe('Hooks example', function() {
  before(function() {
    // 테스터들을 실행하기 전에 한번 실행하는 부분
    console.log('before');
  });
 
  after(function() {
    // 테스터들을 모두 실행하고 나서 한번 실행하는 부분
    console.log('after');
  });
 
  beforeEach(function() {
    // 각 테스터들이 실행되기 전에 실행하는 부분
    console.log('beforeEach');
  });
 
  afterEach(function() {
    // 각 테스터들이 실행된 후에 실행하는 부분
    console.log('afterEach');
  });
 
  // test case
  it('test1', function() {
    // write test logic
    console.log('1');
  });
 
  it('test2', function() {
    // write test logic
    console.log('2');
  });
});
 

결과 화면

Hooks example
before
beforeEach
1
    ✓ test1
afterEach
beforeEach
2
    ✓ test2
afterEach
after
 
 
  2 passing (8ms)


'Framework > Nodejs' 카테고리의 다른 글

이메일 발송  (0) 2017.07.13
MVC model  (0) 2017.07.07
미들웨어(1):cookieParser, bodyParser, limit, query  (0) 2017.04.05
connect  (0) 2017.04.04
FileUpload  (0) 2017.03.26

+ Recent posts