@ExtendWith(MockitoExtension.class)
classMediaBaseServiceTests {
@Mock
PhotobookService photobookService;
@Mock
VideoService videoService;
@InjectMocks
MediaBaseService mediaBaseService;
@Test
voidhasMediaByNotHasUserInfo() {
UserDetailDto userDetailDto =newUserDetailDto();
//static method를 호출하기 위해 MockedStatic으로 선언
MockedStatic<UserDetailDto> userDetailDtoMockedStatic = Mockito.mockStatic(UserDetailDto.class);
when(UserDetailDto.get()).thenReturn(userDetailDto);
Assertions.assertFalse(mediaBaseService.hasMedia(1L));
}
mockstatic 사용 필요.
mockstatic의 경우 mockito 3.4.0버전 이후부터 지원
build.gradle에 추가
testImplementation('org.mockito:mockito-inline:3.4.0')
위의 코드처럼 class을 mockito.mockstatic으로 선언 후에 static method를 call하여 테스트가 가능하다.