Mockito를 활용한 Service Test 작성

yeezze·2022년 7월 4일
0

TDD 연습

목록 보기
2/3

출처

Mockito란?

Mockito는 개발자가 동작을 직접 제어할 수 있는 가짜(Mock) 객체를 지원하는 테스트 프레임워크이다. 가짜 객체에 원하는 결과를 Stub하여 단위 테스트를 진행할 수 있다.

사용법

1. Mock 객체 의존성 주입

Mockito에서 Mock(가짜) 객체의 의존성 주입을 위해서는 크게 3가지 어노테이션이 사용된다.

  • @Mock : Mock 객체를 만들어 반환해주는 어노테이션
  • @Spy : Stub하지 않은 메소드들은 원본 메소드 그대로 사용하는 어노테이션
  • @InjectMocks : @Mock 또는 @Spy로 생성된 가짜 객체를 자동으로 주입시켜주는 어노테이션

@Mock으로 생성된 가짜 Service 객체를 @InjectMocks을 통해 Controller에 주입시킬 수 있다.

2. Stub로 결과 처리

의존성이 있는 객체는 가짜 객체(Mock Object)를 주입하여 어떤 결과를 반환하라고 정해진 답변을 준비시켜야 한다. Mockito에서는 다음과 같은 stub 메소드를 제공한다.

  • doReturn(): Mock 객체가 특정한 값을 반환해야 하는 경우
  • doNothing(): Mock 객체가 아무것도 반환하지 않는 경우(void)
  • doThrow(): Mock 객체가 예외를 발생시키는 경우

3. Mockito와 Junit의 결합

Mockito도 테스팅 프레임워크이기 때문에 JUnit과 결합되기 위해서는 별도의 작업이 필요하다. SpringBoot 2.2.0부터 공식적으로 JUnit5를 지원함에 따라, @ExtendWith(MockitoExtension.class)를 사용해야 결합이 가능하다.

profile
백엔드 개발자 😊

0개의 댓글