我正在尝试找到最干净/最快的方法来测试一个回调(发生在同一个线程上)被执行,并且它只执行一次。
我的最大努力看起来像这样:
class Called {
boolean value;
}
...
Called called = new Called();
object.execute(new Listener() {
public void onExecuted() {
assertFalse(called.value);
called.value = true;
}
}
assertTrue(called.value);
...
这样的好吗?
答案 0 :(得分:2)
使用mockito:
import org.mockito.Mockito.*;
...
@Test
public void Test {
Listener listener = mock(Listener.class);
object.execute(listener);
verify(listener).onExecuted();
}