앞서 toBe 라는 Matcher를 사용해 테스트코드를 작성했다.
외에도 자주사용하는 Matcher 몇 개를 테스트 해보려 한다.
index.js
에 추가해 준다const person = (name, age) =>{
return {
name,
age,
};
};
module.exports = {
person,
};
person
함수는 name
과 age
매개변수를 전달받아 person
오브젝트를 반환하는 함수이다 indes.test.js
파일에 추가한다.const {..., person} = require('./index');
describe('test index.js file', () => {
...
it('makes a person', () =>{
expect(person('Kim',20)).toEqual({
name : 'Kim',
age:20,
});
});
});
person
함수를 통해 생성한 값과 toEqual
에서 사용한 값을 단순비교(===)하면 다른 값이라고 판단한다.toEqual
을 사용해 테스트한다. toBe
를 사용하면 에러가 발생한다.toBeTruthy
와 toBeFalsy
는 참, 거짓 값(Boolean)을 쳌할 때 사용하는 Matcher이다.index.js
const toggle = (a) =>{
return !a;
};
module.exports = {
...
toggle,
};
toggle
함수는 전달받은 매개변수의 반대값을 반환하는 함수이다.index.test.js
const {... , toggle} = require('./index');
describe('test index.js file', () => {
...
it('returns false', () => {
expect(toggle(true)).toBeFalsy();
expect(toggle(true)).not.toBeTruthy();
});
});
toggle
함수에 참값을 매개변수로 전달했고, 결과 값으로 예상하는 값인 거짓값을 확인하기 위해 toBeFalsy
를 사용했다. not
과 toBeTruthy
를 사용해 참이 아님을 확인했다Array
)에 특정값이 포함되어 있는지 확인할 때 toCaontain
을 사용한다.index.js
const range = (start, end) => {
let result =[];
for (let i = start; i <= end; i++){
result.push(i);
}
return result;
}
module.exports = {
...
range,
};
range
함수는 배열에 시작과 끝값을 전달받아서 배열을 만들어 반환하는 함수이다.index.test.js
const {range} = require('./index');
it('has 2', () => {
expect(range(1, 3)).toContain(2);
});
toContain
을 사용해 1로 시작해 3으로 끝나는 배열에 2가 포함되어 있는지 확인하는 테스트 코드이밖에도 Jest에는 많은 Mathcer가 존재한다
https://jestjs.io/docs/expect