Как вы тестируете исключение в регуляторе покоя пружины? - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь проверить, было ли выброшено исключение в моем контроллере покоя. Вот мой контроллер покоя:

@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: Ошибка обработки запроса;

Как мне правильно с этим справиться?

1 Ответ

1 голос
/ 30 апреля 2020

вы можете попробовать приведенный ниже код вместо метода cancelWithInvalidParam ()

@Test (expectedExceptions = Exception.class)
public void cancelWithInvalidParam() throws Exception {
mockMvc.perform(delete(BASE_URL).param("id", "-1").contentType("application/json").accept(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
...