본문 바로가기

cs(with 매일메일)

[260106화] 테스트 더블에 대해서 설명해주세요.

테스트 코드에서 실제 의존성을 사용하기 어려운 경우, 테스트 더블을 사용할 수 있다. 

테스트 더블은 의존성을 시뮬레이션하지만, 테스트에 더욱 적합하게 사용할 수 있도록 만든다. 

실제 의존성을 포함하는 테스트는 외부 세계에 부수 효과를 유발할 수 있으며, 외부 세계의 의존적이기 때문에 비결정적인 동작을 유발할 수 있다. 또한, 실제 의존성을 포함하기 위해서 복잡한 설정이 필요한 경우도 존재한다. 테스트 더블은 테스트로부터 외부 세계를 보호하고, 또 반대로 외부로부터 테스트를 보호하며, 복잡한 설정을 단순화할 수 있도록 해주는 가짜 의존성이다. 

 

종류

- 더미 : 인스턴스화된 객체

- 스텁 : 구현을 단순한 것으로 대체 

- 페이크 : 제품에는 적합하지 않지만, 실제 동작하는 구현을 제공

- 스파이 : 호출된 내역을 기옥

- 목 : 기대한 대로 상호작용하는지 행위를 검증