断言在JUnit中调用回调/侦听器

时间:2014-10-18 00:36:59

标签: java junit junit4

我正在尝试找到最干净/最快的方法来测试一个回调(发生在同一个线程上)被执行,并且它只执行一次。

我的最大努力看起来像这样:

    class Called {
        boolean value;
    }

    ...
    Called called = new Called();
    object.execute(new Listener() {
        public void onExecuted() {
            assertFalse(called.value);
            called.value = true;
        }
    }
    assertTrue(called.value);
    ...

这样的好吗?

1 个答案:

答案 0 :(得分:2)

使用mockito

import org.mockito.Mockito.*;

...

@Test
public void Test {
    Listener listener = mock(Listener.class);

    object.execute(listener);

    verify(listener).onExecuted();
}