toBe
- JavaScript의 === 연산자를 사용하여 엄격한 동일성 비교를 수행
- 원시 값(숫자, 문자열, 불리언 등)에 대해서는 값이 동일하면 통과
- 객체, 배열 등의 참조형 데이터 타입에서는 동일한 객체(참조가 같은 경우)일 때만 통과
test('toBe example', () => {
// 원시 값 비교
expect(3).toBe(3); // 통과
expect('hello').toBe('hello'); // 통과
// 객체 비교
const obj = { a: 1 };
expect(obj).toBe(obj); // 통과
expect(obj).toBe({ a: 1 }); // 실패
});
toEqual
- 객체나 배열의 모든 속성을 재귀적으로 비교하여 값의 동등성을 검사
- 객체나 배열이 같은 속성과 값을 가지고 있으면 통과
test('toEqual example', () => {
// 원시 값 비교
expect(3).toEqual(3); // 통과
expect('hello').toEqual('hello'); // 통과
// 객체 비교
const obj = { a: 1 };
expect(obj).toEqual({ a: 1 }); // 통과
// 중첩된 구조 비교
const nestedObj = { a: { b: 2 } };
expect(nestedObj).toEqual({ a: { b: 2 } }); // 통과
});