java - 如何模拟接口(interface)?

标签 java android unit-testing mockito powermock

这是一个关于 Mockito 的问题。对于以下代码,

public class ABC implements someInterface() {
    public void test() {
        someFunction(new A(), this);
    }
}

someFunction 接受类 A 的实例和实现 someInterface 作为参数的回调。当使用powermock来模拟新实例创建时,我们可以使用

whenNew(A.class).withNoArguments().thenReturn(mMockClass);

然后我们就可以得到模拟的A类了。

问题是如何模拟第二个参数?

最佳答案

要处理第一个参数,您可以使用 https://github.com/mockito/mockito/wiki/Mocking-Object-Creation或者您可以使用 any() 匹配器。

对于第二个参数,只需将您在测试方法中测试的类的引用传递给该类即可。例如,

...
ABC abc = new ABC();
Foo = Mockito.mock(Foo.class);
Foo.someFunction(Mockito.any(), abc);

abc.test();
...

关于java - 如何模拟接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53192059/

相关文章:

java - 在 avro 中存储模式有什么好处?

java - Hibernate交叉引用同一类的多对多父/子映射

java - 在应用程序购买中工作,但方法未执行?

android - ListActivities setItemChecked 在 onListItemClick 中不起作用

android - 通过 adb shell/Tasker 关闭第二个 SIM - 使用 Activity/Intent

java - 生成约会(日期)

java - java中如何实现父类(super class)和子类的Comparator

javascript - 使用 Intern v4 测试 ES2015 类

java - 我们如何从基类中检索接口(interface)并测试它?

.net - 数据库单元测试。对于运行 CI、具有分支和重型数据库的企业解决方案,最好的数据库测试方法是什么?