我的DoFn有一些外部依赖项,我想使用Mockito在我的unittest中嘲笑。通常我使用DoFnTester对我的DoFns进行单元测试。
使用DoFnTester时,是否可以验证模拟对象的期望?
答案 0 :(得分:2)
我提出的解决方案不使用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函数中使用的模拟实例。