我们有一些数据流作业,最终将结果写入BigQueryIO。
我们想为数据流作业编写单元测试。我们能够为作业中使用的所有PTransforms和DoDn编写单元测试。但我们必须对管道或工作本身进行单元测试。但是我们不想在单元测试期间在BigQuery中写一些东西。
我们如何模拟BigQueryIO?
我们使用以下代码将结果写入BigQuery。
.apply(BigQueryIO.Write
.to("my_bigquery_table")
.withSchema(getSchema())
.withWriteDisposition(
BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE));
答案 0 :(得分:1)
您可以通过注入DataflowAssert转换来代替BigQueryIO.Write转换来测试它,如下所示:
DataflowAssert.that(<inputToBQWrite>).<MatchesExpectations>()
这将允许您测试管道中的其他转换,但您需要使用此技术模拟BigQueryIO。