우리는 작업 단위에 시간이라는 의존성을 주입(injection)하고 있다. 새로운 의존성이 매개변수로 주입되면서 작업 단위의 진입점 역시 바뀌었다. 이제 verifyPassword2() 함수는 함수형 프로그래밍을 따르게 되었고, 역효과 가능성이 없는 순수 함수로 다시 태어났다고 볼 수 있다. 순수 함수는 모든 의존성을 내부적으로 주입받기에 함수형 프로그래밍 디자인은 일반적으로 테스트하기 훨씬 쉽다는 특징이 있다.
currentDay 매개변수가 단순히 날짜를 나타내는 숫자 값이라면 이를 스텁이라고 부르는 것이 이상하게 느껴질 수 있다. 하지만 <xUnit 테스트 패턴> 정의에 따르면 currentDay는 ‘더미’ 값이다. 필자는 이것이 ‘스텁’ 범주에 포함되어 있다고 본다. 스텁이 꼭 복잡해야 할 필요는 없으며, 단지 우리가 직접 값을 만들어 조작할 수 있으면 된다. 우리는 함수에 전달되는 특정 입력 값이나 동작을 모방하는 데 이 값을 사용하고 있으므로 역시나 스텁이라고 볼 수 있다. 다음 그림을 참고해 보자.

▲ 그림 3-2 의존성(시간 값)을 스텁으로 주입한다