mockito - 如何在 DoFn 单元测试中使用模拟?

标签 mockito google-cloud-dataflow

我的 DoFn 有一些外部依赖项,我想使用 Mockito 在我的单元测试中模拟它们。通常我使用DoFnTester对我的 DoFns 进行单元测试。

使用DoFnTester时是否可以验证模拟对象的期望?

最佳答案

我提出的解决方案不使用DoFnTester,而是直接调用ProcessElement方法。

这是一个片段:

FileHelper fileHelper = mock(FileHelper.class);
when(fileHelper.createLocalTempDir())
  .thenReturn(new File("/tmp/someTempDIr"));

MyDoFn buildFn = new MyDoFn(fileHelper);
ProcessContext mockContext = mock(ProcessContext.class);
buildFn.processElement(mockContext);

verify(fileHelper).createLocalTempDir();

我在尝试使用 DoFnTester 时遇到的问题是 DoFnTester 序列化和反序列化 DoFn。结果,我在测试函数中验证的模拟实例不是 processElement 函数中使用的模拟实例。

关于mockito - 如何在 DoFn 单元测试中使用模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242190/

相关文章:

java - 我如何模拟 JWT.decode?

google-cloud-dataflow - 如何使用 Apache Beam Python SDK 在给定 key 的两个源上执行 "diff"?

java - 具有 google-cloud-core-grpc 依赖性的 Java 应用程序中的 Maven 冲突

google-bigquery - Python Apache 光束 : BigQuery streaming deduplication by row_id

Scala:Mock init 因 Cats IO 类型参数而失败

java - 如何为方法参数中具有私有(private)枚举的方法编写 JUnit 测试用例

java - 多个 thenReturn 在 Mockito 中无法正常工作

android - 将 mockito-core 更新到版本 3.0.0 后,Mockito 在 SharedPreferences 中返回 null

java - 内部 : Write rejected

Cloud DataFlow 中的 Python 依赖项,requirements.txt 在本地工作,但在工作线程上不起作用