【发布时间】:2016-05-21 00:18:40
【问题描述】:
我正在尝试测试DoFn<KV<String, twitter4j.Status>, String> 实现,并提供测试数据作为输入。我正在探索的一种途径是使用Mockito.mock 对象作为输入,因为有大量抽象方法可以实现。但是,在我的 DoFn 中调用模拟方法会改变对象,因此测试框架会抱怨“值在输出后不得以任何方式改变”。
有没有其他方法可以完成我在这里尝试的事情?测试代码大致是:
Status status = mock(Status.class, withSettings().serializable());
when(status.getText()).thenReturn("bar");
Pipeline p = TestPipeline.create();
PCollection<String> strings = p
.apply(Create.of(KV.of("foo", status)))
.apply(MapElements.via(new TwitterUtils.StatusToJsonFn()));
DataflowAssert.thatSingleton(strings).isEqualTo(...);
【问题讨论】:
标签: google-cloud-dataflow apache-beam