@ExtendWith(MockitoExtension.class)
classMediaServiceTests {

@Mock
PhotoService photoService;

@Mock
VideoService videoService;

@InjectMocks
MediaService mediaService;

@Test
voidhasMediaByNotHasUserInfo() {
        UserDetailDto userDetailDto =newUserDetailDto();

//static method를 호출하기 위해 MockedStatic으로 선언
MockedStatic<UserDetailDto> userDetailDtoMockedStatic = Mockito.mockStatic(UserDetailDto.class);

        when(UserDetailDto.get()).thenReturn(userDetailDto);

        Assertions.assertFalse(mediaService.hasMedia(1L));
    }

Mockito를 이용하여 static method 테스트 코드 작성시에는 MockStatic을 사용해야 한다.

Mockstatic 경우 mockito 3.4.0버전 이후부터 지원하며 이를 사용하기 위해서는 Gradle에 아래와 같이 추가해줘야 한다.

 

build.gradle에 추가

testImplementation('org.mockito:mockito-inline:3.4.0')

 

위의 코드처럼 class mockito.mockstatic 타입으로 선언 후에 static method call하여 테스트 코드 작성 및 확인이 가능하다.

 

+ Recent posts