Я тестирую свой Spring @RestController, используя автономную настройку, и высмеивая некоторые автообученные бобы с использованием mockito, до сих пор все мои тесты были успешными, пока я не попытаюсь протестировать этот сервис rests:Nullpointer на HttpServletResponse ответ с использованием теста SpringFramework и Mockito
@RequestMapping(value = "/some/{someId}/other/someagain", method = RequestMethod.POST)
public FileSystemResource downloadInvoiceQuery(@PathVariable Long someId,
@RequestBody SomeClass request, HttpServletResponse response) {
.
.
.
mockedBean.method("object1","object2");
response.setHeader("some headers");
}
с помощью этого теста:
when(mockedBean.method(any(), any())).thenReturn(null);
mockMvc.perform(MockMvcRequestBuilders.post("/some/{someId}/other/someagain", 1L)
.contentType(MediaType.APPLICATION_JSON).content("{}")).andExpect(MockMvcResultMatchers.status().isOk());
Я получаю NullPointer когда метод setHeaders вызывается над объектом HttpServletResponse в контроллере. Я не могу понять, как вводить или передавать этот объект ответа, чтобы избежать нулевого указателя. Спасибо за вашу помощь.
Вы являетесь не используя автономную настройку: MockMvcBuilders.webAppContextSetup, но, возможно, используя эту настройку, я избегу пустого указателя ответа. – xiidarkevil
True - спасибо за подсказку, но в случае, описанном в обоих вариантах, необходимо выполнить настройку автономного контекста так: this.mockMvc = MockMvcBuilders.standaloneSetup (новый AccountController()). Build(); ' –
У меня есть моя конфигурация настроена правильно в автономном режиме, мой контроллер предоставляет много URL-адресов и я тестирую их все успешно, но метод, который я показываю, является единственным, который не работает для нулевого указателя в объекте ответа. – xiidarkevil