https://martinfowler.com/articles/mocksArentStubs.html
Mocks Aren't Stubs
Explaining the difference between Mock Objects and Stubs (together with other forms of Test Double). Also the difference between classical and mockist styles of unit testing.
martinfowler.com
- Dummy
- 아무 것도 하지 않는 깡통 객체
- Fake
- 단순한 형태로 동일한 기능은 수행하나, 프로덕션에서 쓰기에는 부족한 객체(ex. FakeRepository)
- Stub
- 테스트에서 요청한 것에 대해 미리 준비한 결과를 제공하는 객체
- 그 외에는 응답하지 않는다.
- Spy
- Stub이면서 호출된 내용을 기록하여 보여줄 수 있는 객체
- 일부는 실제 객체처럼 동작시키고 일부만 Stubbing할 수 있다.
- Mock
- 행위에 대한 기대를 명세하고, 그에 따라 동작하도록 만들어진 객체
Stub
- 상태 검증(State Verification)
- 예를들어 어떤 메소드 어떤 기능을 요청했을 때 이런 기능을 요청하고 보니깐 이 Stub이 상태가 어떻게 바뀌었어
- 그래서 get으로 해서 상태를 검증
- 내부적인 상태가 어떻게 바뀌었어에 대한 거에 초점이 맞춰져 있음
Mock
- 행위 검증(Behavior Verification)
- when -> parameter N개를 요청했을 때 객체(any)를 리턴할꺼야
- 메서드 어떤게 실행될지 그런 것인듯
'Spring관련 기술 > 테스트코드' 카테고리의 다른 글
BDD Mockito (0) | 2023.12.24 |
---|---|
@Mock, @Spy, @InjectMocks (0) | 2023.12.24 |
Mockito로 Stubbing하기 (0) | 2023.12.24 |
Presentation Layer 테스트 (2) (0) | 2023.12.22 |
Presentation Layer 테스트(1) (0) | 2023.12.19 |