如何解决通过ProcessWindowFunction <IN,OUT,KEY,W>进行Flink单元测试
如何为有状态过程功能创建单元测试。我有这样的东西:
private static SingleOutputStreamOperator<Tuple> methodName(KeyedStream<Event,String> stream) {
return stream.window(TumblingEventTimeWindows.of(Time.minutes(10)))
.process(new ProcessFunction());
}
和
ProcessFunction extends ProcessWindowFunction<IN,OUT,KEY,W>
我在Flink页面中找到的所有线束测试都是从KeyedProcessFunction扩展而来的,这不是我的情况。 谢谢。 亲切的问候!
解决方法
通常,这些测试工具期望测试操作员,而不是用户功能。因此,对于ProcessWindowFunction
,您需要首先创建一个合适的窗口运算符以传递到测试工具。
您可以使用ProcessWindowFunction
实例化OneInputStreamOperatorTestHarness
并用WindowOperator
包裹ProcessWindowFunction
来测试implementation 'com.google.android.gms:play-services-mlkit-text-recognition:16.1.0'
。恐怕这并不是特别简单,但我可以举个例子向您推荐https://github.com/apache/flink/blob/release-1.11/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperatorTest.java#L437。
Ververica的Apache Flink培训课程涵盖测试(https://training.ververica.com/decks/testing),其中包含有关如何使用这些测试工具的更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。