Spring/테스트코드
Mockito
doriver
2024. 7. 16. 20:46
Mockito
개발자가 동작을 직접 제어할 수 있는 가짜(Mock) 객체를 지원하는 테스트 프레임워크
일반적으로 Spring으로 웹 애플리케이션을 개발하면, 여러 객체들 간의 의존성이 생긴다. 이러한 의존성은 단위 테스트를 작성을 어렵게 하는데, 이를 해결하기 위해 가짜 객체를 주입시켜주는 Mockito 라이브러리를 활용할 수 있다.
Mockito를 활용하면 가짜 객체에 원하는 결과를 Stub하여 단위 테스트를 진행할 수 있다.
Mockito.when( ~ ).thenReturn( ~ );
@ExtendWith(SpringExtension.class)
public class MemberServiceTest {
@MockBean // 가짜 객체를 만드는 역할, 가짜 객체이므로 응답을 정의해줘야 함
MemberRepository memberRepository;
~
// given
Mockito.when(memberRepository.save(Mockito.any(Member.class))) // 가짜 객체의 로직에대해, 응답을 정의
.thenAnswer(i -> i.getArguments()[0]);
Mockito.when(memberRepository.findByName("hi1")).thenReturn(Optional.of(member1));
@ExtendWith(MockitoExtension.class)
Mockito의 Mock 객체를 사용하기 위한 Annotation, class 위에 달아준다