java - 断言在 JUnit 中调用回调/监听器

标签 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);
    ...

这样就够了吗?

最佳答案

使用mockito :

import org.mockito.Mockito.*;

...

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

    object.execute(listener);

    verify(listener).onExecuted();
}

关于java - 断言在 JUnit 中调用回调/监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26435207/

相关文章:

java - 可以以相反的顺序为java中的每个循环做一个吗?

java - 如何为具有重试逻辑的方法编写junit测试用例

java - GWT RequestFactory - 如何正确初始化它?

java - 没有可用的 'xxx.dao.AreaDao' 类型的合格 bean : expected at least 1 bean which qualifies as autowire candidate

java - 同步 SynchronizedMap 的性能开销

java - 如何执行eclipse的任务计划程序?

java - 如何将对象数组传递给按钮?

java - 无法从 JUnit 中的 Spring Boot 读取应用程序属性?

java - Powermock Mockito : the method I'm trying to stubb ends up being called

java - jsfunit 与 junit 4