在我的DAO方法单元测试中,我正在尝试测试更新用户方法。但是,我必须创建一个用户然后更新它。所以我的模拟DAO期待addUser调用,但是当我调用update方法时,它正在抱怨
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);
答案 0 :(得分:1)
在添加第二个期望之前,您已经重播了模拟:
expect(userAdminDAO.addNewUser(u1)).andReturn(u1);
replay(userAdminDAO); // you shouldn't do this
...
userAdminDAO.updateUser(u2);