0

在我对 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);
4

1 回答 1

1

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

expect(userAdminDAO.addNewUser(u1)).andReturn(u1);
replay(userAdminDAO); // you shouldn't do this
...
userAdminDAO.updateUser(u2);
于 2013-03-08T15:13:02.793 回答