더북(TheBook)

예제 5-4 checkInService.checkIn(attendee)의 테스트

소스 파일 5장\Callbacks\checkInService_tests.js

describe(‘Conference.checkInService’, function() {
var checkInService,
    checkInRecorder,
    attendee;
 
beforeEach(function() {
  checkInRecorder = Conference.checkInRecorder();
  spyOn(checkInRecorder, ‘recordCheckIn’);
 
  // checkInRecorder를 주입하면서
  // 이 함수의 recordCheckIn 함수에 스파이를 심는다.
  checkInService = Conference.checkInService(checkInRecorder);
   
  attendee = Conference.attendee(‘형철’, ‘서’);
});
   
describe(‘checkInService.checkIn(attendee)’, function() {
  it(‘참가자를 체크인 처리한 것으로 표시한다’, function() {
    checkInService.checkIn(attendee);
    expect(attendee.isCheckedIn()).toBe(true);
  });
  it(‘체크인을 등록한다’, function() {
    checkInService.checkIn(attendee);
    expect(checkInRecorder.recordCheckIn).toHaveBeenCalledWith(attendee);
  });
});
});

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