[JS] expect로 간단한 Test 코드 만들기

TATA·2023년 1월 4일
0

JavaScript

목록 보기
10/25

✔️ expect로 간단한 테스트 코드 만들기

테스트하는 값과 기대값을 비교하기 위해 expect 함수를 사용할 수 있다.

How?

설치
npm i chai --save-dev

require로 모듈을 가져다가 사용하면 된다.
const { expect } = require('chai');

chai는 다음과 같은 chain들을 제공하여 코드의 가독성을 높이고
좀 더 직관적으로 테스트를 작성할 수 있게 도와준다.
to be been is that which and has
have with at of same but does still

expect 사용법

'기대하는 조건'에 해당하는 함수를 matcher라고 한다.
'참인 것이어야 한다' => to.be.true
'3과 같아야 한다' => to.equal(3)
(오브젝트인 경우에는 to.deep을 사용한다.)

expect(테스트하는값).기대하는조건
expect(isEven(3)).to.be.true => isEven(3)'의 결과값은 참(true)이어야 한다.
expect(1 + 2).to.equal(3) => sum(1, 2)의 결과값은 3과 같아야(equal) 한다.
expect([1, 2]).to.deep.equal([1, 2]) => [1, 2]의 결과값은 [1, 2]와 같아야 한다.

equal : 가장 많이 사용. 실제로 반환되는 값과 예측 값이 동일한지 검증
not.equal : 같지 않음을 검증
deep.equal : 실제로 반환되는 오브젝트 값과 예측 오브젝트 값이 동일한지 검증

above : 초과
least : 이상
below : 미만
most : 이하
within : 범위 (ex. to.within(2, 5) => 2과 5사이의 값)
lengthOf : length 비교

key : object의 key들을 비교
any.key : 어느 하나의 값이라도 key를 가지면 통과
include : array에 어떤 값이 포함되어 있는지 검증
deep.include : 오브젝트에 어떤 값이 포함되어 있는지 검증

a : type을 검증
an : type을 검증
throw : 에러가 발생했는지에 대해 검증

expect 테스트 함수 예시

function sum(...nums) {
  let sum = 0;
  for (let i = 0; i < nums.length; i++) {
    sum = sum + nums[i];
  }
      return sum;
}
expect(sum(1, 2, 3)).to.equal(6);
expect(sum(1, 2, 3, 4)).to.equal(10);

👉 mocha, chai framework에 대해 더 자세하게 알아보기
👉 잘 정리된 블로그 링크

profile
🐾

0개의 댓글