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())

Другие вопросы по тегам