【发布时间】:2020-04-30 18:08:43
【问题描述】:
我正在尝试测试是否在我的休息控制器中引发了异常。这是我的休息控制器:
@DeleteMapping
public ResponseEntity<Void> cancel(@RequestParam long id) {
if(id < 1) {
throw new MyException();
}
try {
doSomething();
}
catch (SomeException e) {
throw new MyException();
}
}
这是我的测试:
private MockMvc mockMvc;
@BeforeMethod
public void beforeMethod() {
initMocks(this);
mockMvc = standaloneSetup(new StudyDispatcherController(studyDispatcherService)).build();
}
@Test (expectedExceptions = MyException.class)
public void cancelWithInvalidParam() throws Exception {
mockMvc.perform(delete(BASE_URL).param("id", "-1").contentType("application/json").accept(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
@Test (expectedExceptions = MyException.class)
public void cancelWithException() throws Exception {
doThrow(SomeException.class).when(myService).doSomething();
mockMvc.perform(delete(BASE_URL).param("id", "123").contentType("application/json").accept(MediaType.APPLICATION_JSON)).andExpect(status().is5xxServerError());
}
但是,它抛出 org.springframework.web.util.NestedServletException:请求处理失败;
我该如何以正确的方式处理这个问题?
【问题讨论】:
标签: java spring rest mockito mockmvc