代码之家  ›  专栏  ›  技术社区  ›  Glide

在方法内创建模拟对象

  •  4
  • Glide  · 技术社区  · 14 年前

    如果我有以下方法:

    public void handleUser(String user) {
    
        User user = new User("Bob");
        Phone phone = userDao.getPhone(user);
        //something else
    }
    

    User user = new User("Bob");
    EasyMock.expect(userDaoMock.getPhone(user)).andReturn(new Phone());
    

    当我试着运行上面的测试时,它会抱怨意外的方法调用,我认为这是因为在方法中实际创建的用户与我传入的用户不同…我说的对吗?

    或者我测试传入UserDao的参数最严格的方法是:

    EasyMock.expect(userDaoMock.getPhone(EasyMock.isA(User.class))).andReturn(new Phone());
    
    3 回复  |  直到 14 年前
        1
  •  3
  •   DoctorRuss    14 年前

    由于 User 对象的预期调用和实际调用不同 getPhone

    正如@laurence gonsalves在评论中提到的,如果 用户 有一个有用的 equals 方法,你可以用 EasyMock.eq(mockUser) 获取电话 用户

    看一看这个 EasyMock Documentation

        2
  •  1
  •   Anthon    12 年前

    你可以用

    EasyMock.expect(userDaoMock.getPhone(EasyMock.anyObject())).andReturn(new Phone());
    

    我想这应该能解决你的问题。

        3
  •  0
  •   manish    10 年前

    EasyMock.expect(userDaoMock.getPhone(EasyMock.anyObject(User.class))).andReturn(new Phone());

    这将解决问题。