본문 바로가기
TIL/TIL

toEqual()는 == && toBe()는 ===, 대상의 'type'

by koreashowme 2020. 1. 21.

describe("Expect에 관해서", function() {

// 지금 부터 expect의 사용법을 학습합니다.

// 우리가 테스트 해볼 값이 true인지를 검사합니다.

it("테스트 하고 싶은 값이 true 인지를 검사합니다.", function() {

expect(true).toBeTruthy(); // 이 코드는 우리가 기대하는 값이 true이여야 한다는 뜻입니다.

// expect(테스트 하고 싶은 값)

});

 

// 테스트를 하기위해서는 우리가 실제 값이 우리가 원하는 값과 같은지 비교하여야합니다.

it("두 값의 일치 여부를 검사합니다.", function() {

let expectedValue = 2;

let actualValue = 1 + 1;

 

expect(actualValue === expectedValue).toBeTruthy();

});

 

// 조금 더 멋진 방법으로 비교를 해봅시니다.

it("조금 더 괜찮은 방법으로 일치 여부를 검사합니다.", function() {

let expectedValue = 2;

let actualValue = 1 + 1;

 

// toEqual()는 ==와 비슷하게, 보이는 모습이 같은지를 비교합니다.

expect(actualValue).toBe(expectedValue);

// 2 == '2' => true

});

 

// 하지만 "type"도 같은지 확인해야할 경우도 있겠죠.

it("===를 사용해 일치 여부를 검사합니다.", function() {

let expectedValue = 2;

let actualValue = (1 + 1).toString(); // "2"

 

// toBe()는 ===와 비슷하게, 대상의 'type'도 같은지 비교합니다.

if (actualValue === expectedValue) {

expect(actualValue).toBe(expectedValue);

}

// 2 === '2' => false, 2 === 2 => true

});

 

// 문제를 해결하며 FILL_ME_IN을 만나게 되면 FILL_ME_IN을 테스트를 통과하도록

// 변경해야합니다.

// 아래 테스트를 통과하기 위해서 FILL_ME_IN을 무엇으로 변경해야 할까요?

it("'FILL_ME_IN'에 정확한 값을 입력했는지 검사합니다.", function() {

expect(1 + 1).toEqual(2);

});

});

 

comment