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