java - EasyMock:带有回调参数的方法

标签 java unit-testing easymock

我遇到这样的情况:

class A {
  void methodA(Callback cb) {
    ...
    cb.onResult(result);
  }
}

class B {
  void methodB(A a) {
    a.methodA(new Callback() {
      void onResult(Result r) {
        ...
      }
    });
  }
}

问题是:如何使用 EasyMock 测试具有不同“结果”的“B.methodB”?

最佳答案

您可以捕获传递给methodACallback

Capture<Callback> cap = new Capture<Callback>();
mockA.methodA(capture(cap));
replay(mockA);
instanceOfB.methodB(mockA);
Callback cb = cap.getValue();

// now we can call cb.onResult with a mocked Result instance

关于java - EasyMock:带有回调参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16373378/

相关文章:

java - 为什么这不起作用 - 使用 Junit 的参数化数据对同步方法进行单元测试?

java - 在测试类中模拟私有(private)枚举

java - 使用 junit 和 easymock 持久保存模拟对象

java - EasyMock 在预期调用时显示意外调用

java - 如何在 ServletContextListener 中获取正在运行的应用程序的 URL?

java - 在 Java 10 与 Java 8 中从纪元以来的毫秒转换为 LocalDateTime

java - 在 BST 的节点中存储数据

java - 使用 JAXRPC-RI Web 服务客户端时如何设置连接超时?

java - 针对 WAR 运行测试

php - 在单元测试类中断言困境