Open utterances-bot opened 1 year ago
stub 과 mock 은 어떻게 다른가요?
stub 과 mock 은 어떻게 다른가요?
저도 테스트는 잘 모르지만 글 읽어보고 제가 이해한 토대로 정리해봤습니다.
굳이 원문을 따 보자면
라고 하는데요, 여기서 둘째 제시문을 보면 기능을 테스트할 때 사용할 최소한의 구현만 한다고 하고, 마지막 제시문에서는 어디에서 가져온 값이 아닌 미리 준비해둔 결과만 제공한다고 했습니다. 이 점 Mock과 비교할 때 염두에 두시기 바랍니다.
여기는 예제를 보면 UserRepository를 그대로 가져다 쓰는 걸 볼 수 있습니다. 위 Stub 소개 문단에서 말한 "인터페이스 또는 기본 클래스가 최소한으로 구현된 상태이다."와 상반되기도 하고요.
그렇기 때문에 이 친구는 UserRepository를 재구현하거나 부분구현하지 않습니다. UserRepository를 이리저리 건드려보고, 그 객체가 무슨 행동을 하는지 감독하는 감독관 같은 객체라고 할 수 있겠네요.
이 문단의 제시문조차 "동작을 꾸민 객체"가 아니라 "호출에 대한 기대를 명세"하는 객체라고 하네요. 아마 제 생각엔 Stub을 소개한 문단에서 보여 준 예제와 가장 큰 차이점 중 하나가 이거 아닐까 생각합니다.
제가 글을 잘 못 써서 난잡해도 양해 부탁드립니다!! 즐거운 공부 되세요
긴 의견 감사합니다. 원래는 이 용어들에 대해서 (본문을 읽어도) "그게 그거 아닌가?"하는 느낌을 지우기가 어려워서 저자의 생각을 질문드렸습니다.
@CrackThrough 님의 생각에도 별로 반박할 부분은 없다고 생각하지만 제겐 https://stackoverflow.com/a/3459431/8556340 와 https://stackoverflow.com/a/27151309/8556340 가 설득력있게 느껴졌습니다.
근데 이 댓글 남기면서 든 생각인데, 여전히 잘 모르겠네요.
Test Double을 알아보자
테스트 더블(Test Double)이란? xUnit Test Patterns의 저자인 제라드 메스자로스(Gerard Meszaros…
https://tecoble.techcourse.co.kr/post/2020-09-19-what-is-test-double/?utterances=43cfff5a2a99b293dfe3f63duzKACQeLc0fUi4tz27iNZPMychybil0hiGcB88YNsZklQv5LLgyvRed2X%2BVJGIU1J%2Bfq3rmryAS1mDtbWk5FvNhlSxo3ZH2dLHKmtZ1vdPlVdIKF582RH9y6g%2FI%3D