【问题标题】:EasyMock calling two DAO methods- Unexpected method call UserAdminDAO.updateUserEasyMock 调用两个 DAO 方法 - 意外方法调用 UserAdminDAO.updateUser
【发布时间】:2013-02-24 01:05:54
【问题描述】:

在我对 DAO 方法的单元测试中,我正在尝试测试更新用户方法。但是,我必须创建一个用户然后更新它。所以我的模拟 DAO 期待 addUser 调用,但是当我调用更新方法时,它会抱怨

java.lang.AssertionError: 意外的方法调用 UserAdminDAO.updateUser(null):

这里是代码截图

expect(userAdminDAO.addNewUser(u1)).andReturn(u1);
    replay(userAdminDAO);

    User u2 = (User)userService.addNewUser(ar);
    Assert.assertEquals(u.getUserName(), u2.getUserName());

    u2.setUserName("new modified");
userAdminDAO.updateUser(u2);   //error is on this line 
    expectLastCall().once().andAnswer(new IAnswer<User>() {
        public User answer() {
            return null;
        }
    });
    replay(userAdminDAO);
    userService.updateUser(u2);

【问题讨论】:

    标签: unit-testing junit mocking easymock


    【解决方案1】:

    在添加第二个期望之前,您已经重播了模拟:

    expect(userAdminDAO.addNewUser(u1)).andReturn(u1);
    replay(userAdminDAO); // you shouldn't do this
    ...
    userAdminDAO.updateUser(u2);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多