Junit Mockito с пружиной - тестовый набор для возвращения Json String
Я учусь Junit Mockito для тестирования контроллера Spring-MVC с помощью Spring 3.2 в Intellij. мой контроллер
@RequestMapping(value = "/user", method = RequestMethod.GET)
public String initUserSearchForm(ModelMap modelMap) {
User user = new User();
modelMap.addAttribute("User", user);
return "linkedInUser";
}
@RequestMapping(value = "/byName", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public
@ResponseBody
String getUserByName(HttpServletRequest request,@ModelAttribute("userClientObject") UserClient userClient) {
String firstName = request.getParameter("firstName");
String lastName = request.getParameter("lastName");
return getUserByName(userClient, firstName, lastName);
}
что я сделал, у меня есть одна форма для поиска пользователя по имени. Объект UserClient является атрибутом сеанса, и я попытался написать тестовый пример junit для моего контроллера
@Test
public void testInitUserSearchForm() throws Exception {
this.liClient = client.createUserClient();
mockMvc.perform(get("/user"))
.andExpect(status().isOk())
.andExpect(view().name("user"))
.andExpect(forwardedUrl("/WEB-INF/pages/user.jsp"));
}
@Test
public void testGeUserByName() throws Exception {
String firstName = "Wills";
String lastName = "Smith";
mockMvc.perform(get("/user-byName"))
.andExpect(status().isOk());
}
Как мне проверить мой getUserByName
метод и как бы я добавить атрибут сессии? Пожалуйста, любой может помочь мне написать контрольный пример с возможными тестами для этого метода. заранее спасибо
2 ответа
Хммм.
Вы могли бы попробовать
mockMvc.perform(get("/user-byName").sessionAttr("userClientObject", userClientObject))
.andExpect(status().isOk());
настроить userClientObject в тестовом приспособлении.
Что значит "вернуть getUserByName(userClient, firstName, lastName);" точно делать? Если это не связано с внешней зависимостью, просто подтвердите свой возврат в предложении andExpect(jsonPath()).
Я думал, что это должно быть @SessionAttribute, кстати.
Я использую
mockMvc.perform(get("/user-byName").flashAttr("userClientObject", userClientObject)) .andExpect(status().isOk())