我可以为名称相同但方法签名不同的方法创建一个通用模拟吗?

时间:2019-08-30 19:54:51

标签: java junit mockito powermockito

比方说,我有一个类UserDAO(),它具有多个名为findUser()的方法。但是,此findUser()方法多次重载,并且在所有实例中都返回一个User对象。

例如:

public class UserDAO {

    public User findUser(int param1) {
        *do stuff to create a user object*
        return User;
    }

    public User findUser(int param1, long param2) {
        *do stuff to create a user object*
        return User;
    }

    public User findUser(long param2) {
        *do stuff to create a user object*
        return User;
    }
}

比方说,我希望此类在测试其他类时返回一些通用的User对象。所以我想要类似的东西:

@Test
public void testSomething() {

    User mockedUser = mock(User.class);
    UserDAO mockedUserDAO = mock(UserDAO.class);

    when(mockedUserDAO.findUser(*any parameter*)).thenReturn(mockedUser);
}

基本上,我不想单独模拟每个findUser()方法。有什么办法吗?

似乎接受的答案{{3}}可能提供了一个提示,但是我很难理解最hacky的解决方案,因为我是编码方面的新手。

0 个答案:

没有答案