Test Double
Martin Fowler에 의하면 이를 다음과 같이 정리한다.
Dummy 객체는 전달되지만 실제로 사용되지는 않는다. 주로 파라미터 값을 채우는 용도로 사용된다.
Fake 객체는 실제 동작하는 구현이 존재하지만, 실제를 완전히 모방하진 않고, 단순한 방식으로 구현 돼 있다. 그래서 프로덕션 환경에서 사용되기엔 무리가 있다.
Stubs 객체는 테스트 도중 격리된 환경에서 고정된 응답을 제공한다. Stub 객체는 요청이 전달 됐는지, 또는 몇 번 전달 됐는지에 대한 정보를 저장할 수 있다.
Mocks 객체는 테스트에서 호출이 예상되는 경우, 미리 입력된 결과값을 기대한다. 그래서 특정 메서드가 올바르게 호출 됐는지, 인자는 정확한지 등의 결과를 얻을 수 있다.