依赖配置
取消Spring Boot默认的mockito-core
依赖,转变为依赖mockito-inline
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<exclusions>
<exclusion>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<scope>test</scope>
</dependency>
无参数的静态方法mock
try (MockedStatic<DateUtil> mockedStatic = Mockito.mockStatic(DateUtil.class)) {
mockedStatic.when(DateUtil::getNowLocalDateTime).thenReturn(LocalDateTime.of(2022, 12, 11, 11, 30));
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = MockMvcRequestBuilders.post("/formLogin").content("username=Still1&password=123").contentType(MediaType.APPLICATION_FORM_URLENCODED);
ResultActions resultActions = mockMvc.perform(mockHttpServletRequestBuilder);
}
有参数的静态方法mock
MockedStatic<DoubanItemPhotoOssSavePathGenerator> doubanItemPhotoOssSavePathGeneratorMockedStatic = Mockito.mockStatic(DoubanItemPhotoOssSavePathGenerator.class);
String stubSavePath = "celebrity/1014853.jpg";
doubanItemPhotoOssSavePathGeneratorMockedStatic.when(() -> DoubanItemPhotoOssSavePathGenerator.generateSavePath(stubPhotoUrl, CELEBRITY_ID, DoubanItemType.CELEBRITY)).thenReturn(stubSavePath);
TaskInput taskInput = new TaskInput(CELEBRITY_URL);
Celebrity actualCelebrity = celebrityDoubanDataCrawlerService.crawlItem(taskInput);
doubanItemPhotoOssSavePathGeneratorMockedStatic.close();
PREVIOUSSpring MVC RESTful全局异常处理
NEXTSpring Boot编程式事务