스프링 Mockito test

greenTea·2023년 5월 14일
0

Mock

🫠테스트 코드를 작성하여 테스트를 돌릴 경우 보통 @SpringBootTest를 선언해준다. 이렇게 되면 스프링 컨테이너를 띄워서 테스트를 진행하게 되는데 테스트를 돌려보면 컨테이너를 띄우고 의존성 주입하고 하다보면 시간이 걸리게 된다. 이때 Mock을 이용하면 해결 할 수 있는데 Mock을 이용하게 되면 가짜 객체를 생성 할 수 있고 이를 통해 컨테이너를 띄위지 않고 테스트를 돌릴 수 있어 보다 더 빠르며 특정상황에 대하여 테스트를 할 수 있어 좋다.
Mock객체를 생성하려면 아래와 같이 이용하면 된다.

Mock객체 생성

@ExtendWith(MockitoExtension.class)
class MailServiceTest {

    @Mock
    private JavaMailSender javaMailSender;

    @InjectMocks
    private MailService mailService;
}

😎@Mock을 통해 가짜 객체를 생성해주고 @InjectMocks를 통해 가짜 객체를 주입해줄 수 있다.

테스트 코드

 @Test
 void sendMail() {
        // Given
        String email = "test@example.com";
        String subject = "Test Subject";
        String content = "Test Content";

        // When
        mailService.sendMail(email, subject, content);

        //then
        verify(javaMailSender, times(1)).send(any(SimpleMailMessage.class));
   }

위 코드는 mailservice를 실행 한 경우 mock객체인 JavaMailsender가 1번 실행되었는지를 확인하는 코드이다.

🫡이를 통해 더 빠르고 특정상황에 대하여 테스트 할 수 있다.

profile
greenTea입니다.

0개의 댓글