Jest에서는 toBe() 그리고 toEqual() 두 가지 함수가 있는데, 값을 비교한다라는 용도는 둘 다 같지만 작동 방식이 다르다

toBe()

해당 함수는 값이 같은지, 그리고 **객체도 같은지(same)**도 비교한다.

const a = { name: "ABC" };
const b = { name: "ABC" };

expect(a).toBe(b); // Failure
expect(a).toBe(a); // Success

toEqual()

해당 함수는 값이 같은지(equal)만 비교한다.

const a = { name: "ABC" };
const b = { name: "ABC" };

expect(a).toEqual(b); // Success
expect(a).toEqual(a); // Success

추가적으로 toStrictEqual() 이라는 함수도 있다. 말그대로 엄격하게 확인하는 함수인데, 값에 undefined 가 포함돼 있으면 실패로 처리한다.

const a = { name: "ABC" };
const b = { name: "ABC", address: undefined };

expect(a).toEqual(b);       // Success
expect(a).toStrictEqual(b); // Failure