嘲笑BigQueryIO

时间:2015-07-09 11:02:30

标签: unit-testing google-cloud-dataflow

我们有一些数据流作业,最终将结果写入BigQueryIO。

我们想为数据流作业编写单元测试。我们能够为作业中使用的所有PTransforms和DoDn编写单元测试。但我们必须对管道或工作本身进行单元测试。但是我们不想在单元测试期间在BigQuery中写一些东西。

我们如何模拟BigQueryIO?

我们使用以下代码将结果写入BigQuery。

            .apply(BigQueryIO.Write
                    .to("my_bigquery_table")
                    .withSchema(getSchema())
                    .withWriteDisposition(
                            BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE));

1 个答案:

答案 0 :(得分:1)

您可以通过注入DataflowAssert转换来代替BigQueryIO.Write转换来测试它,如下所示:

DataflowAssert.that(<inputToBQWrite>).<MatchesExpectations>()

https://cloud.google.com/dataflow/java-sdk/JavaDoc/com/google/cloud/dataflow/sdk/testing/DataflowAssert

这将允许您测试管道中的其他转换,但您需要使用此技术模拟BigQueryIO。