Apache Beam Как использовать TestStream с файлами

#java #junit #apache-beam

#java #junit #apache-beam

Вопрос:

У меня есть простой конвейер, который просто копирует файлы из источника в пункт назначения. Я пытаюсь написать тесты для окна, которое я настроил.

Есть ли способ использовать класс TestStream для файлов?

Например:

     @Test
    public void elementsAreInCorrectWindows() {
     
        TestStream<FileIO.ReadableFile> testStream = TestStream.create(ReadableFileCoder.of())
            .advanceWatermarkTo(start)
            .addElements(readableFile1)
            .advanceWatermarkTo(end)
            .addElements(readableFile2)
            .advanceWatermarkToInfinity();        
    }

  

Однако конструктор для ReadableFile упакован защищенным, поэтому я не смог бы создать эти объекты.

Ответ №1:

Я думаю, что было бы разумно сделать этот кодировщик общедоступным. В то же время, у вас может быть TestStream, который создает элементы другого типа, которые затем преобразуются с помощью DoFn в доступные для чтения файлы.