首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-test和mockito控制器测试

spring-test和mockito控制器测试
EN

Stack Overflow用户
提问于 2013-10-01 13:58:29
回答 1查看 562关注 0票数 1
代码语言:javascript
复制
@Test
public void testWelcomePage() throws Exception {
    UserDto dto = new UserDto("admin");
    UserEntity user = new UserEntity("admin");
    when(userServiceMock.getUser(dto)).thenReturn(user);

    mockMvc.perform(get("/main/user/welcome?loginId=admin"))
        .andExpect(status().isOk())
        .andExpect(view().name("user/welcome"))
        .andExpect(forwardedUrl("/WEB-INF/pages/user/welcome.jsp")) 
        .andExpect(model().attribute("user", hasProperty("loginId", is("admin")))); //-->java.lang.AssertionError: Model attribute 'user' .... but: was null...

    verify(userServiceMock, times(1)).getUser(dto); //-->Argument(s) are different! Wanted:
    verifyNoMoreInteractions(userServiceMock);
}

UserDto是spring mvc form对象传递的对象。

代码语言:javascript
复制
@RequestMapping(value="/welcome", method = RequestMethod.GET)
public String welcome(UserDto userDto, ModelMap model, Locale locale) {
    UserEntity user = null;
    try {
        user = userService.getUser(userDto);
    } catch (DataNotFoundException e) {
        e.printStackTrace();
        model.addAttribute("message", messageSource.getMessage("msg.data.notfound", null, locale));
    }
    model.addAttribute("user", user);
    return "user/welcome";
}

但是,mockito在传递参数时抛出断言错误(UserDto id不同)。我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2013-10-02 13:11:53

UserDto对象需要重写equals()方法。

代码语言:javascript
复制
@Override
public boolean equals(Object obj) {
    return EqualsBuilder.reflectionEquals(this, obj);
}

完成!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19109018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档