Solución:
¿Intentó utilizar un ExceptionHandler personalizado como aquí? : https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
Si lo hace, puede devolver códigos de respuesta HTTP personalizados y verificarlos en su prueba.
La forma más fácil es inyectar @ExceptionHandler
en su contexto de prueba de primavera o arroja una excepción directamente en MockMvc.perform()
justo antes .andExpect()
.
@ContextConfiguration(classes = { My_ExceptionHandler_AreHere.class })
@AutoConfigureMockMvc
public class Test {
@Autowired
private MockMvc mvc;
@Test
public void test() {
RequestBuilder requestBuilder = MockMvcRequestBuilders.post("/update")
.param("branchId", "13000")
.param("triggerId", "1");
MvcResult mvcResult = mvc.perform(requestBuilder)
.andExpect(MockMvcResultMatchers.status().is4xxClientError())
.andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(__ -> Assert.assertThat(
__.getResolvedException(),
CoreMatchers.instanceOf(SecurityException.class)))
.andReturn();
}
De esa manera MvcResult.getResolvedException()
sostiene @Controller
¡Excepción!
- https://stackoverflow.com/a/62910352/173149
- https://stackoverflow.com/a/61016827/173149
- Prueba del método Spring MVC @ExceptionHandler con Spring MVC Test
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)