我的 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/