expect(() => verifier.verify('anything'))
.toThrow("It's the weekend!");
});
});
이제 전체 코드를 확인해 보자.
예제 3-14 공통 인터페이스 추출하기
export interface TimeProviderInterface {
getDay(): number;
}
export class RealTimeProvider implements TimeProviderInterface {
getDay(): number {
return moment().day();
}
}
export class PasswordVerifier {
private _timeProvider: TimeProviderInterface;
constructor(rules: any[], timeProvider: TimeProviderInterface) {
this._timeProvider = timeProvider;
}