이 예제에서 동일한 테스트를 두 가지 방식으로 표현해 보았다. 하나는 테스트 내부에서 현재 날짜를 확인하는 것이고, 다른 하나는 테스트 외부에서 현재 날짜를 확인하는 방식이다. 두 가지 모두 현재 날짜가 주말일 때만 테스트가 실행되고 검증될 수 있는데, 이는 바람직하지 않다.
1장에서 언급한 좋은 테스트 기준 중 하나인 일관성(consistency)을 다시 살펴보자. 테스트는 언제 실행하든 이전 실행과 같은 결과를 보장해야 한다. 테스트 내에서 사용된 값은 변하지 않아야 하고 검증도 매번 동일해야 한다. 테스트 코드나 프로덕션 코드를 변경하지 않는 한 이 법칙을 유지해야 한다.
두 번째 테스트는 주말이 아니면 아예 실행되지 않는다. 이것만으로도 의존성을 끊기 위해 페이크를 사용할 이유는 충분하다. 또 주말이나 평일을 테스트할 방법이 없으므로 의존성을 주입할 수 있도록 코드를 다시 설계할 필요가 있다.
시간을 사용하는 테스트는 불안 요소를 안고 있다. 다른 요소가 변하지 않아도 시간이 변하면 테스트가 실패할 수 있기 때문이다. 예제 3-2는 이러한 문제를 보여 주는 대표적인 예다. 로컬에서 실행할 때 두 가지 상태 중 하나만 확인할 수 있다. 주말에 어떻게 동작하는지 확인하려면 주말이 될 때까지 기다려야 한다.8