테스트 하는 값과 기대값을 비교하기 위해 expect함수를 사용
expect(테스트하는값).기대하는조건 // 기대하는조건'에 해당하는 함수를 matcher라고 함.
expect(true).to.be.true / expect(false).to.be.false 와 같이 사용이 가능
예시1
case1. expect(isEven(3)).to.be.true
=>'isEven(3)'의 결과값은 참(true)이어야 한다'
예시2
let a = 1+1;
let b = 2;
expect (a ===b ).to.be.true // a===b와 값이 같으므로 expec함수가 기대하는 조건과 부합.
expect('테스트하는값').to.equal('기대하는값');
예시1
expect(1 + 2).to.equal(3)
=> 'sum(1, 2)의 결과값은 3과 같아야(equal) 한다'
예시2
let a = (1+1).toString();
expect(a).to.equal(2); <--- 오류 .equal에 있는 2는 type이 number이기 때문
expect(a).to.equal("2") <-- 정답
배열의 요소나 객체의 속성이 서로 같은지 확인하는 matcher
equal과 deep equal의 차이..?
deep equal은 객체 내부까지 비교해서 일치여부를 체크하는 메소드이다.
equal 같은경우는 안에있는 값을 비교하지만
deep equal같은 경우는 객체를 체크하여 나타냄
expect(arr.slice(3, 100)).to.deep.equal(['jelly']);
expect(arr[5]).to.equal('changed in assignedArr');
deep.equal같은경우는 배열과 그 배열의 요소를 나태날때 사용.
물론 배열이나 객체가 아닌경우는.. equal과 동일한 결과가 나옴.