// stub-time/001-modular/password-verifier-time02-modular.spec.js
const {SUNDAY, Verifier} = require("./password-verifier-time01");
test('constructor function: on weekends, throws exception', () => {
const alwaysSunday = () => SUNDAY;
const verifier = new Verifier([], alwaysSunday);
expect(() => verifier.verify('anything'))
.toThrow("It's the weekend!");
});
왜 굳이 객체 지향적으로 만들어야 하는지 궁금할 수도 있다. 답이 정해져 있는 문제는 아니다. 무엇을 택할지는 현재 프로젝트의 상황, 기술 스택, 팀이 함수형 프로그래밍과 객체 지향 프로그래밍 중 어느 것에 더 익숙한지, 기타 여러 비기술적인 요소까지 모든 사항을 검토해야 한다. 객체 지향이라는 훌륭한 도구를 도구 상자에 넣어 두면 필요할 때 꺼내 사용할 수 있으니 이 얼마나 좋은가. 다음 이어지는 내용을 읽으면서 이 점을 염두에 두기 바란다.