본문 바로가기
Spring/테스트코드

Mockito

by doriver 2024. 7. 16.

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 위에 달아준다

'Spring > 테스트코드' 카테고리의 다른 글

단위 테스트, 통합 테스트  (0) 2024.08.13
Assertions( assertJ 라이브러리 )  (1) 2024.08.13
Spring Boot 테스트종류  (0) 2024.05.23
JUnit  (0) 2022.11.24