둘째, 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);