Junit Mockito和spring—Json字符串返回的测试用例

Junit Mockito和spring—Json字符串返回的测试用例,spring,spring-mvc,junit4,mockito,springmockito,Spring,Spring Mvc,Junit4,Mockito,Springmockito,我正在学习JUnitMockito使用Intellij中的Spring3.2测试spring-mvc控制器。 我的控制器是 @RequestMapping(value = "/user", method = RequestMethod.GET) public String initUserSearchForm(ModelMap modelMap) { User user = new User(); modelMap.addAttribute("User"

我正在学习JUnitMockito使用Intellij中的Spring3.2测试spring-mvc控制器。 我的控制器是

 @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
方法,以及如何添加会话属性?请任何人都能帮我 编写包含该方法可能的测试的testcase。提前感谢

你可以试试

mockMvc.perform(get("/user-byName").sessionAttr("userClientObject", userClientObject))
            .andExpect(status().isOk());
在测试夹具中设置userClientObject

“return getUserByName(userClient,firstName,lastName);”到底是做什么的?如果它不涉及外部依赖,只需在andExpect(jsonPath())子句中断言您的返回

顺便说一下,我想应该是@SessionAttribute。

我用


mockMvc.perform(get(“/user byName”).flashAttr(“userClientObject”,userClientObject)).andExpect(status().isOk())

使用“,@modeldattribute(“userClientObject”)UserClient的目的是什么它是一个会话属性,当用户登录时,我们将其密钥保存在会话属性中,它返回json格式的字符串。如何在springTry和Expect(content().string(“此处为您的json字符串”))中测试字符串是否不为空可以检查内容是否包含string而不是Equals如果您希望断言返回的json字符串,这可能会有所帮助。andExpect(jsonPath(“fName”).exists()//或其他方便的方法)它显示错误`java.lang.NoClassDefFoundError:com/jayway/jsonPath/InvalidPathException`。我需要包括任何其他图书馆吗