如何模拟界面?

时间:2018-11-07 15:00:17

标签: 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类。

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

1 个答案:

答案 0 :(得分:0)

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

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

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

abc.test();
...