jest 여러가지 비교 함수
toBe()
기본형을 비교할 때 가장 많이 사용. (두 값이 같은지 비교)
비교 대상이 기본형 : 두 원시 값이 같은지
object : 같은 오브젝트에 대한 참조 인지 비교
toEqual()
비교 대상이 기본형: 두 원시 값이 같은지(toBe와 동일)
object : 재귀적으로 프로퍼티를 비교하며 깊은 비교를 수행
→ 참조하는 오브젝트가 다르더라도 같은 프로퍼티에 같은 값이 있다면 성공.
→ 다만 추가적인 프로퍼티가 있는 경우 fail이 되지만 추가적인 프로퍼티가 undefined라면 테스트를 통과한다.
test("라운드 첫 시작 시 거리 초기화 테스트", () => {
const car = new CarRaceGame();
car.setCarNames(["Rulu", "24"]);
expect(car.updateRace([0, 0])).toEqual([0, 0]);
});
toStrictEqual()
이름 그대로 일반적인 Equal 보다는 훨씬 엄격한 Equal
동작과정은 toEqual과 같게 깊은 비교를 한다.
기존과는 다르게 특정 요소에 undefined가 나오는 것을 허용하지 않음.
describe("로또 클래스 테스트", () => {
test("배열이 전달되면 로또가 생성되는지 테스트", () => {
const lotto = new Lotto([1, 2, 3, 4, 5, 6]);
expect(lotto.numbers).toStrictEqual([1, 2, 3, 4, 5, 6]);
});
test("배열이 전달되면 로또가 오름 차순으로 정렬되는지 테스트", () => {
const lotto = new Lotto([2, 1, 3, 6, 5, 4]);
expect(lotto.numbers).toStrictEqual([1, 2, 3, 4, 5, 6]);
});
});
toMatchObject()
비교할 오브젝트가 주어진 오브젝트의 부분집합인지를 비교.
toStrictEqual과 같이 undefined인 프로퍼티도 검사에 포함.
배열에 대한 비교: 배열의 원소가 모두 같은 경우에만 통과
'FE 기술 > Technic' 카테고리의 다른 글
Access Token & Refresh Token (0) | 2024.11.18 |
---|---|
구글로그인 (Oauth 2.0) 연결하기 (0) | 2023.08.29 |
프론트엔드 Github Action 테스트 자동화 (0) | 2023.07.24 |
Husky 사용해서 commit 단위로 Lint 검사(Git Desktop 오류코드 127) (0) | 2023.07.18 |
Storybook netlify 배포 & 오류 해결하기 (MAC ,Window 둘다) (2) | 2023.05.04 |