在 JUnit5 中 MockMVC.perform 期间预期异常
Expecting exception during MockMVC.perform in JUnit5
这可能是一个重复的问题。但是我浏览了大约 10-15 个相关帖子和相关回复,但都没有解决我的问题。我面临的问题如下
我有一个带有自定义 ApplicationException 的 SpringRest 控制器 class。
我已经为我的控制器编写了一个 Junit,下面是我遇到问题的代码片段。
this.mockMvc.perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON)
.content(new ObjctMapper().writeValueAsString(requestObject)
.headers(header)
.accept(MediaType.APPLICATION_JSON)
)
.andDo(print())
.andExpect(status().is4xxClientError());
当我执行测试方法时,我看到代码抛出了 ApplicationException,但是 Junit 失败了,我在 Junit 控制台中看到的是
"org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.abc.pmr.case.exception.ApplicationException at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
...
...
Caused by: com.abc.pmr.case.exception.ApplicationException
at com.abc.pmr.case.exception.ApplicationException
我也尝试过 .andExpect(mvcresult -> assertTrue(mvcresult.getResolvedException() instanceof ApplicationException));
。
但这也无济于事。
Junit 因上述异常而失败,而我想将预期的异常作为 ApplicationException 传递给 Junit。
注意:此 class 中的所有成功场景测试用例均已成功通过。
如有任何帮助,我们将不胜感激。
我想您的 mockMvc
设置不完全适合您的情况。
确保您已将异常处理程序设置为您的 mockMvc。
您可以找到有关此 here.
的更多信息
因此,当您的环境配置正确时,您将能够测试此逻辑。
这可能是一个重复的问题。但是我浏览了大约 10-15 个相关帖子和相关回复,但都没有解决我的问题。我面临的问题如下 我有一个带有自定义 ApplicationException 的 SpringRest 控制器 class。 我已经为我的控制器编写了一个 Junit,下面是我遇到问题的代码片段。
this.mockMvc.perform(MockMvcRequestBuilders.post(url)
.contentType(MediaType.APPLICATION_JSON)
.content(new ObjctMapper().writeValueAsString(requestObject)
.headers(header)
.accept(MediaType.APPLICATION_JSON)
)
.andDo(print())
.andExpect(status().is4xxClientError());
当我执行测试方法时,我看到代码抛出了 ApplicationException,但是 Junit 失败了,我在 Junit 控制台中看到的是
"org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.abc.pmr.case.exception.ApplicationException at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
...
...
Caused by: com.abc.pmr.case.exception.ApplicationException
at com.abc.pmr.case.exception.ApplicationException
我也尝试过 .andExpect(mvcresult -> assertTrue(mvcresult.getResolvedException() instanceof ApplicationException));
。
但这也无济于事。
Junit 因上述异常而失败,而我想将预期的异常作为 ApplicationException 传递给 Junit。 注意:此 class 中的所有成功场景测试用例均已成功通过。
如有任何帮助,我们将不胜感激。
我想您的 mockMvc
设置不完全适合您的情况。
确保您已将异常处理程序设置为您的 mockMvc。
您可以找到有关此 here.
因此,当您的环境配置正确时,您将能够测试此逻辑。