본문 바로가기
관리자

Programming-[Frontend]/Javascript

Javascript / 기초 / Testbuilder (Mocha, Chai)

728x90
반응형

1. Test builder를 사용하는 이유

Testbuilder는 TDD(Test-driven Development) 방법론의 Tool이다.

TDD는 코드를 작성하기 전에 Test Case를 작성하는 방법으로, 다음과 같은 장단점이 있다.

 

장점.

코드를 작성하기 위한 방향, 코드의 구성에 대해 미리 기획과 고민이 완료되었다는 뜻이므로, 버그가 더 적은 코드를 짜게 된다.

이에 따라 프로그램이 장기적인 문제를 일으킬 확률도 줄어든다.

 

단점.

1. Proto type의 코드를 만들어 전반적으로 기획을 바꿔가며 유동적으로 대처하는 것이, 속도가 빠르다.

 

어떤 방법이 맞든지, 기초적인 Test Case는 짜야하고, 경우의 수를 따져봐야 하는 것은 기본이다.

이러한 맥락에서, Testbuilder tool(Test framework)들을 사용하여 효율적으로 기초 test를 해볼 수 있다.

 

 

2. Test builder 소개 - Mocha, Chai

 

2-1. Mocha

Mocha는 사용자가 입력하는 Case별로 함수의 예상 동작과 실제 동작을 비교하여, 작동 테스트를 해주는 framework이다.

자세한 사항은 공식사이트에 설명되어 있다. mochajs.org

 

Mocha - the fun, simple, flexible JavaScript test framework

Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct te

mochajs.org

 

예제. howMuch 라는 함추를 호출하여, 'banana'라는 input을 넣었을 때, '$5'가 나오는지 확인한다.

 

1
2
3
4
5
6
7
8
9
10
describe("price inspect"function() {
 
  it("Check whether price of product is correct"function() {
 
    if(howMuch("banana"!== "$5") {
    throw new Error("Wrong case");
    }
  });
 
});
cs

 

2-2. Chai

Chai는 여러 종류의 헬퍼 함수들을 제공하는 test builder이다. Mocha와 같이 두 값이 같은 값인지 비교하는 method 뿐만 아니라 여러가지 method들이 제공된다.

http://chaijs.com/

 

Chai

  Powered by Open Source Chai is hosted on GitHub. Have a suggestion or found a bug? Fork this project to help make Chai even better. Even this documentation site is open source and available for contribution.

www.chaijs.com

 

예제. Mocha에서 사용한 함수와 동일

 

1
2
3
4
5
6
7
8
describe("price inspect"function() {
  
  let assert = chai.assert;
  it("Check whether price of product is correct"function() {
    assert.eqaul(howMuch("banana"), "$5");    
    }
  });
 
cs
728x90
반응형