본 포스팅은 프로그래머스 미니 데브 코스를 공부하며
학습을 기록하기 위한 목적으로 작성된 글입니다.
test double은
SUT와 의존관계에 있는 객체와 상호작용할 수 없을 때
SUT와 상호작용하기 위해 만든 객체이다.
test double에는 Mock
과 Stub
두 가지 종류가 있다.
mock, spy이다.
호출에 대한 명세를 한다.
Mock은 어떻게 동작할지 기술이 된 객체이다.
Mock을 이용한 검증에서는
특정 메소드가 호출되는지 또는 특정 동작이 수행되는지를 확인하면서 검증한다.
행위에 집중 하고, 행위 검증을 사용한다.
(Mock은 가짜 객체는 아니다.)
가짜 객체, dummy, fake이다.
stub은 실제 동작하는 것처럼 보이게 만드는 객체이다.
예를 들어 SUT와 의존관계에 있는 인터페이스 B가 있다면
인터페이스 B를 구현하는 Stub을 만들어서 제공하는 것이다.
Stub을 이용한 검증에서는
어떤 내용이 반환되게 구현해놓고 stub을 사용한 뒤
검증하고자 하는 SUT에 대해 상태를 확인하면서 검증한다.