Test ‐ Mock을 마주하는 자세 - dnwls16071/Backend_Summary GitHub Wiki
- Mockito : 가짜(Mock) 객체의 특정 메서드가 호출될 때 원하는 동작을 미리 정의해두는 것을 말한다.
- 쉽게 말해, 이 메서드가 이렇게 호출되었다면 이렇게 동작하라고 미리 약속해두는 것이다.
List<String> mockedList = mock(List.class);
when(mockedList.get(0)).thenReturn("hello"); // mockedList.get(0)이 호출되면 "hello"를 반환하라.- 테스트 대상 코드가 어떤 객체의 메서드를 호출할 때, 실제 동작이 아니라 원하는 값이나 예외를 임의로 리턴하게 해서 테스트 흐름을 제어하기 위한 목적으로 사용한다.
- 또한 외부 의존성을 분리하고 예측 가능한 테스트 환경을 만들기 위함이다.
- Stub : 테스트에서 요청한 것에 대해 미리 준비한 결과를 제공하는 객체로 그 외에는 응답하지 않는다.
- Mock : 행위에 대한 기대를 명세하고 그에 따라 동작하도록 만들어진 객체이다.