假设我们有一个这样的回调函数接口(interface):
public interface Callback
{
void foo();
}
我们有一个调用作为参数给出的回调的方法:
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();
}
});
}
现在,问题来了:在这种情况下,如何测试回调是否确实被调用了?
最佳答案
为测试提供模拟 Callback
对象并验证该方法是否被调用。例如,使用 Mockito 作为模拟库,您将创建一个模拟对象(安排):
Callback myMock = mock(Callback.class);
然后将其提供给被测试的代码(act):
someObject.doSomething(myMock);
并验证该方法已被调用(断言):
verify(myMock, times(1)).foo();
关于java - 如何使用回调测试函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32050478/