作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何为有状态流程功能创建单元测试。我有这样的事情:
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 页面中发现的所有 Harness 测试都是从 KeyedProcessFunction 扩展而来的,这不是我的情况。
最佳答案
通常,这些测试工具期望测试运算符(operator),而不是用户功能。所以在 ProcessWindowFunction
的情况下,您需要首先创建一个合适的窗口操作符来传递给测试工具。
您可以测试一个 ProcessWindowFunction
使用 OneInputStreamOperatorTestHarness
你用 WindowOperator
实例化缠在你的 ProcessWindowFunction
.恐怕这不是特别简单,但我可以为您提供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 培训类(class)中涵盖了测试 ( https://training.ververica.com/decks/testing ),其中包含有关如何使用这些测试工具的更多信息。
关于java - ProcessWindowFunction<IN, OUT, KEY, W> 上的 Flink 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63401125/
我是一名优秀的程序员,十分优秀!