У меня есть следующий LoginController:
@GetMapping(value = "/login")
public ModelAndView login(Model model, String error) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("login");
if (error != null) {
model.addAttribute("error", error);
}
return modelAndView;
}
И я попытался написать для него модульный тест следующим образом:
public class LoginControllerTest {
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(new LoginController()).build();
}
@Test
public void testLogin() throws Exception {
this.mockMvc.perform(get("/login"))
.andExpect(status().isOk())
.andExpect(view().name("login"))
.andDo(print());
}
}
Единственная проблема в том, что я не знаю, как обработать часть ошибки:
model.addAtribute("error", error);
Кроме того, я получаю это сообщение об ошибке, когда пытаюсь запустить тест, как я его написал:
Путь к циклическому представлению [login]: снова отправит обратно на текущий URL обработчика [/ login]. Проверьте настройки ViewResolver!
Есть идеи, как мне решить эту проблему и правильно написать тест?
UPDATE
Я решил ошибку, которую получил, добавив в метод setUp:
public void setUp() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/login/");
viewResolver.setSuffix(".jsp");
mockMvc = MockMvcBuilders.standaloneSetup(new LoginController()).setViewResolvers(viewResolver).build();
}
Единственная проблема, с которой я столкнулся сейчас, заключается в том, что я не могу понять, как обработать часть ошибки из моего LoginController в моем модульном тесте. Можете ли вы помочь мне правильно написать полный тест?
Спасибо!