I 1 개 메인 출력과 1 sideoutput 갖는다 아파치 빔 함께 파르 기능 테스트 유닛 해요 : I 주 검사하기위한 유닛 테스트 클래스를 설정유닛 테스트 측 출력
public class GetPubsubMessageDoFn extends DoFn<PubsubMessage, PubsubPayload.PubsubPayloadDTO> {
@ProcessElement
public void processContext(ProcessContext processContext) {
PubsubPayload pubsubPayload = new PubsubPayload(processContext.element());
processContext.output(pubsubPayload.getPayload()); //main output
processContext.output(ORIGIN_PATH_TUPLE_TAG, GCSUtils.toGSURL(pubsubPayload.getPayload().bucket, pubsubPayload.getPayload().name)); //side output
}
}
- 측면 출력 :
public class GetPubsubMessageDoFnTest {
private DoFnTester<PubsubMessage, PubsubPayloadDTO> getPubsubMessageDoFn;
private Injector injector;
private final TupleTagList tags = TupleTagList.of(PUBSUB_PAYLOAD_DTO_TUPLE_TAG).and(ORIGIN_PATH_TUPLE_TAG);
@Before
public void setup() {
injector = Guice.createInjector(new GetPubsubMessageTestModule());
this.getPubsubMessageDoFn = DoFnTester.of(injector.getInstance(GetPubsubMessageDoFn.class));
this.getPubsubMessageDoFn.setOutputTags(tags); //Does not compile
}
//Tests
the documentation 따르면 I는 DoFnTester
클래스에없는 setOutputTags(tags)
해당 함수를 사용하여 측 출력을 설정할 수있을 것이다. 아파치 빔 기능의 서브 세트를 사용하는 Google Cloud Dataflow dependency 버전 2.1.0을 사용하고 있지만 DoFnTestersetOutputTags
에 대한 Apache Beam 참조 문서는 (소개에서 다시 언급 했음에도 불구하고) 보이지 않습니다.