1

DoFn<KV<String, twitter4j.Status>, String>実装をテストし、テスト データを入力として提供しようとしています。私が模索していた 1 つの方法は、Mockito.mockオブジェクトを入力として使用することでした。それ以外の方法で実装する抽象メソッドが多数あるためです。ただし、 my でモックされたメソッドを呼び出すと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(...);
4

2 に答える 2

2

入力データを提供し、結果をアサートすることで DoFn をテストできる DoFnTester を確認してください: https://cloud.google.com/dataflow/pipelines/testing-your-pipeline

于 2016-05-25T04:02:19.447 に答える