This may be a repeated question. But I have gone through some 10-15 related posts and associated responses which have not resolved my issue. The issue that I am facing is as here below I have a SpringRest controller class with custom ApplicationException. I have written a Junit for my controller and here below is the snippet where I am facing issue.
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());
When I execute the test method, I see that ApplicationException is thrown from the code, but the Junit fails and what I see in Junit Console is
"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
I tried with .andExpect(mvcresult -> assertTrue(mvcresult.getResolvedException() instanceof ApplicationException));
as well.
But that did not help either.
The Junit fails with the above said exception, while I want to pass the Junit with the expected Exception as ApplicationException. Note: All the success scenario testcases in this class are passing successfully.
Any help here would be much appreciated.