Я пытаюсь создать тест с использованием mockito, но для ограничения в стандарте gcp, в pom.xml я исключил библиотеку spring-boot-starter-tomcat, gcp использует серверный мол.
Я создал фиктивный тест, и я издевался над контроллером, я использовал это:
mvc.perform(MockMvcRequestBuilders.get("/api/foo")
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk());
Когда я запускаю тест, я вижу это исключение
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/servlet/ServletContext;
at org.springframework.security.test.web.support.WebTestUtils.findFilter(WebTestUtils.java:120)
at org.springframework.security.test.web.support.WebTestUtils.getSecurityContextRepository(WebTestUtils.java:59)
at org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors$SecurityContextRequestPostProcessorSupport.save(SecurityMockMvcRequestPostProcessors.java:581)
at org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors$TestSecurityContextHolderPostProcessor.postProcessRequest(SecurityMockMvcRequestPostProcessors.java:671)
at org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder.postProcessRequest(MockHttpServletRequestBuilder.java:749)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:155)
....
Когда я снова запускаю этот тест, но удаляю исключение о spring-boot-starter-tomcat, тест выполняется нормально.
Существует ли тестовая конфигурация для использования сервера Jetty в тесте или добавления spring-boot-starter-tomcat в область тестирования?
Я попытался добавить библиотеку (spring-boot-starter-tomcat) в область действия теста, но результат тот же.
Спасибо за ваши ответы.