테스트 대역(Test-Double)

테스트를 작성할 때 운영 코드를 대신해 행동하는 행동 대장들

마틴 파울러 문서 중 일부입니다. 더 이상 혼동하지 않게 되길…

용어

Mock 이란 아래 이야기할 것들의 집합입니다. 우리가 예상된 결과를 미리 작성해두는 형태의 프로그램 된 개체들입니다.

어떤 정보를 이메일로 전송하는 EmailService를 생각해보면, 테스트를 구동할 때마다 메일을 보내고 싶은 사람은 없을 것입니다.

우리가 작성한 Stub은 이메일을 전송하는 대신

이렇게 Stub은 행위를 검증할 수도 있고 상태를 검증할 수도 있습니다(마틴 파울러는 독자가 직접 두 가지 모두 경험해보길 바라고 있습니다). 제 경험에는 상태를 검증하는 경우 테스트가 더 깨지기 쉽게 되고 행위를 검증하는 경우 조금은 더 안정적으로 테스트를 유지할 수 있다고 판단했습니다. 한쪽이 더 뛰어난 것은 없습니다. 언제나 그렇듯 우리는 선택지가 있다면 저울질해 보고 그 상황에 맞는 답을 택하는 방법이 최선이란 것을 알고 있습니다.

참고