3.3.1 스텁으로 만든 시간을 매개변수로 주입
지금까지 다룬 내용을 바탕으로 시간을 제어해야 하는 두 가지 이유를 생각해 볼 수 있다.
• 테스트의 변동성을 없애기 위해
• 시간과 관련된 시나리오를 쉽게 테스트하기 위해
여기에서 테스트를 좀 더 반복 가능하게 하는 가장 간단한 리팩터링을 해 보자. 함수에 현재 날짜를 뜻하는 currentDay를 매개변수로 추가한다. 이렇게 하면 함수 내에서 moment.js 모듈을 사용할 필요가 없고, 날짜를 전달하는 작업은 함수를 호출하는 쪽에서 처리한다. 이를 통해 테스트에서 시간을 하드코딩 방식으로 설정하여 인수로 넘겨주면 테스트와 함수의 일관성을 유지할 수 있다. 다음은 이러한 리팩터링 예시다.