Я пытаюсь написать модульный тест для конвейера.Конвейер включает в себя шаг, который записывает результаты в BigQuery.В тесте было уместно проверить последний шаг перед записью в BigQuery.В этом случае возвращаемый тип результата составного преобразования равен PCollection<TableRow>
.Я пытаюсь утверждать, что этот результат равен TableRow
, который я создаю вручную, используя new TableRow()
и устанавливая значения индивидуально.
Возможно ли преобразовать этот TableRow, созданный вручную, в PCollection или можно извлечь TableRow из PCollection?Или мне нужно написать другое преобразование, чтобы преобразовать результат составного преобразования в String
и ожидаемый результат (MANUALLY_CREATED_TABLEROW
) в String
и проверить их равенство?
public void testPipeline() throws Exception {
PCollection<String> input = p.apply(Create.of(STRING_MESSAGE).withCoder(StringUtf8Coder.of()));
PCollection<TableRow> output = input.apply(new MyCompositeTransform());
PAssert.that(output).containsInAnyOrder(MANUALLY_CREATED_TABLEROW);
p.run().waitUntilFinish();
}
Существует поток , что ошибка и проблема похожи.