더북(TheBook)

Note ≣ | 여러분이 현재 객체 지향적인 스타일로 코드를 만들고 있다면 공통 인터페이스를 상속하는 클래스를 만드는 것도 하나의 방법이다. 이는 이 장 뒷부분에서 다룰 예정이다.

이제 테스트 코드에서 FakeTimeProvider를 생성하고 이를 PasswordVerifier 클래스에 의존성으로 주입한다.

describe('verifier', () => {
    test('on weekends, throws exception', () => {
        const verifier = new PasswordVerifier([], new FakeTimeProvider(SUNDAY));
        expect(() => verifier.verify('anything'))
            .toThrow("It's the weekend!");
    });
});

다음 예제는 이 코드 조각을 합친 전체 코드다.

예제 3-13 손수 작성한 스텁 객체 생성하기

// stub-time/02-inject-object/password-verifier-time03.spec.js
function FakeTimeProvider(fakeDay) {
    this.getDay = function () {
        return fakeDay;
    };
}


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