2019-06-27 Mocha적용(2) Assertion
Chai
const chai = require('chai');
const expect = chai.expect;
const assert = chai.assert;
const should = chai.should();
// Expect
describe('#Expect test', () => {
it('expect - Array', () => {
const arr = [1, 2, 3, 4, 5];
expect(arr).to.have.lengthOf(5);
expect(arr).to.be.not.empty;
expect(arr).to.have.ordered.members([1,2,5,3,4]);
});
it('expect - String', () => {
const str = 'Awesome!!';
expect(str).to.be.a('String');
expect(str).to.equal('Awesome!!');
expect(str).to.have.lengthOf(7, 'Why fail?');
});
});
- expect는 BDD Style의 인터페이스이며, 자연어에 가까운 Assertion이다.
- 마지막 테스트에 실패한 테스트에 대해서도 메세지를 포함시킬 수 있다.
Asseet
- assert는 Nodejs에서 기본표기법을 제공한다. 하지만 chai에서 좀 더 풍부한 표현을 제공한다.
Hooks
describe('#Hooks', () => {
before(() => {
console.log('before');
});
after(() => {
console.log('after');
});
beforeEach(() => {
console.log('before each');
});
afterEach(() => {
console.log('after each');
});
it('#test case#1', () => {
console.log('test case1');
});
it('#test case2', () => {
console.log('test case2');
});
})
//result
#Hooks
before
before each
test case1
✓ #test case#1
after each
before each
test case2
✓ #test case2
after each
after
- 초기에 before가 실행되고, beforeEach() 그리고 테스트케이스(it)이 실행된다. it이 종료되면 afterEach가 실행되고 또 다시 beforeEach가 실행, 테스트케이스(it)이 실행 후 afterEach()가 실행된다.
느낀점
Test코드를 작성하고, 값을 비교하는 Assertion에 대해서 학습을 하였다. Should, Expect, Assert 3가지의 Assertion이 있었지만 가장 익숙한 Assertion을 했다. 또한 Before,BeforeEach, After, AfterEach 등을 통해 각각의 테스트가 실행될때마다 어떻게 사전 사후값을 설정하는지를 학습했다. 아쉬운 부분은 통합테스트를 아직 못해서 아쉬웠다…얼른 배우자.
Written on June 27, 2019