더북(TheBook)

둘째, then이 내어준 Promise가 해결(settled)(귀결/버림 둘 다 가리키는 용어다)되기 전에 단위 테스트가 자신의 기대식을 평가하지 못하게 막아야 한다. 기대식을 then 내부에서 실행시키면 된다(예제 6-4).

예제 6-4 개선한 checkInService.checkIn의 단위 테스트

소스 파일 6장\Promises\checkInService_tests.js

it(“참가자의 체크인 번호를 세팅한다”, function(done) {
checkInService.checkIn(attendee).then(
  function onPromiseResolved() {
    expect(attendee.getCheckInNumber()).toBe(checkInNumber);
    done();
  },
  function onPromiseRejected() {
    expect(‘이 실패 분기 코드가 실행됐다’).toBe(false);
    done();
  });
});
});

Promise는 귀결 또는 버림 어느 한쪽으로 결판나므로 분기 코드는 양쪽 다 넣는 게 좋다. 그런데 버림 코드의 기대식이 조금 어색해 보인다.

expect(‘이 실패 분기 코드가 실행됐다’).toBe(false);

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.