假设我们有一个用于回调函数的接口,例如:
public interface Callback
{
void foo();
}
Run Code Online (Sandbox Code Playgroud)
我们有一个方法可以调用作为参数给出的回调:
public void doSomething(final Callback callback)
{
// Do something, like asynchronously fetch something from a server
asyncStuff.doSomethingAsync(new AsyncResponseHandler()
{
@Override
public void asyncStuffDone()
{
// Call the callback
callback.foo();
}
});
}
Run Code Online (Sandbox Code Playgroud)
现在,问题来了:在这种情况下,如何测试回调确实被调用?
Callback
为测试提供一个模拟对象,并验证该方法已被调用。例如,使用Mockito作为模拟库,您将创建一个模拟对象(安排):
Callback myMock = mock(Callback.class);
Run Code Online (Sandbox Code Playgroud)
然后将其提供给要测试的代码(操作):
someObject.doSomething(myMock);
Run Code Online (Sandbox Code Playgroud)
并验证该方法已被调用(断言):
verify(myMock, times(1)).foo();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1373 次 |
最近记录: |