테스트 더블(TestDouble)
테스트더블의 용어는 스턴트더블를 생각하면 된다. 영화 촬영시 위험한 액션씬을 찍을때 스턴트 더블을 사용하기도 한다.
테스트도 테스트 하기 어려운것을 테스트 하기 위해 테스트 더블을 사용한다.(Gerard Meszaros가 사용한 어휘)
- Dummy : 오브젝트는 전달되지만 실제로 사용되지는 않습니다. 일반적으로 매개 변수 목록을 채우는 데 사용됩니다.
- Fake : 실제로 작동하는 구현을 가지고 있지만 일반적으로 프로덕션에 적합하지 않은 지름길을 사용합니다 ( InMemoryTestDatabase 가 좋은 예입니다).
- Stubs : 테스트 중에 이루어진 통화에 대해 미리 준비된 답변을 제공하며, 일반적으로 테스트를 위해 프로그래밍 된 내용 이외의 항목에는 전혀 응답하지 않습니다.
- Spies : 호출 방법에 따라 일부 정보를 기록하는 스텁입니다. 한 가지 형태는 전송 된 메시지 수를 기록하는 이메일 서비스 일 수 있습니다.
- Mocks : 받을 것으로 예상되는 호출의 사양을 형성하는 기대치로 미리 프로그래밍되어 있습니다. 예상하지 못한 전화를 받으면 예외를 throw 할 수 있으며 예상했던 모든 전화를 받았는지 확인하는 동안 확인됩니다.