Я хочу написать тест, который оценивает ответ контроллера, который имеет исключение NullPointerException при обработке запроса.
Для этой цели я написал контроллер, который выбрасывает NullPointer при обработке запроса. Используя контроллер MockMVC, я отправляю запрос GET этому контроллеру.
Контроллер, который выбрасывает нулевой указатель при обработке:
@Controller
public class Controller{
@GetMapping(value = "/api/data")
@ResponseBody
public ResponseEntity<Resource> getData() {
if (true)
throw new NullPointerException(); // Intended Nullpointer Exception
return ResponseEntity.notFound().build();
}
}
Тестовая функция, которую я ожидаю получить ошибку 500:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class Test {
@Autowired
protected MockMvc mockMvc;
@Test
public void shouldReturn500StatusWhenControllerThrowsAnException() throws Exception {
MvcResult result = this.mockMvc.perform(get("/api/data"))
.andExpect(status().is5xxServerError())
.andReturn();
}
}
Я ожидаю, что запрос MockMVC вернет ошибку 500, как настоящий контроллер, когда он работает как сервер.
На самом деле вместо этого MockMVC просто завершается с ошибкой NullPointer и ничего не возвращает.