목은 복잡한 동작을 시뮬레이션하고 테스트의 끝에 상호작용이 올바른지 검증할 수 있어서 유용하다. 스텁은 더 단순하다. 스텁을 사용하면 정해진 상태의 객체를 반환받을 수 있다. 목과 스텁은 아주 강력하지만 사용하기 복잡하고 테스트를 유지보수하기 어렵게 한다.
함수형 코드의 테스트를 작성할 때는 단순히 입력을 제공하고 원하는 결과가 나오는지 테스트하거나, 더 나아가 함수가 임의의 입력에 대해 정해진 속성을 만족하는지 테스트할 수 있다. 어떤 경우든 내부 상태나 객체 호출의 순서를 살펴봐야 할 이유가 없다.
또한 많은 경우 완전히 단순한 함수들에만 의존하고 인터페이스에 의존하지 않으면 스텁이나 목 사용을 피할 수 있다. 심지어 다른 컴포넌트와의 상호작용을 테스트할 때도 스텁과 목 사용을 피할 수 있다. 나중에(4장의 허브에 항목 추가하기 참고) 예상 결과를 모킹하고 나중에 검증하는 대신 임의의 함수를 테스트 안에서 사용하면 얼마나 테스트가 단순해지는지에 대해 자세히 살펴본다.
이만큼 설명했지만, 아직도 함수형 코드를 테스트할 때 스텁 구현을 만드는 게 가장 간단한 방법인 경우가 몇 가지 있다. 그리고 그렇게 해도 전혀 잘못된 게 아니다!