Flink单元测试 - 无法设置上下文来处理所有功能



假设我有这个

class FooProcess extends ProcessAllWindowFunction[String,String, TimeWindow]{
override def process(context: Context, elements: Iterable[String], out: Collector[String]): Unit = ???
}

我想将一些单元测试写入过程方法,但我遇到嘲笑上下文的问题

val context =  mock[Context[FooProcess]]

此导入失败(cannot resolve symbol Context(

import org.apache.flink.streaming.api.functions.windowing.ProcessAllWindowFunction.Context

Flink中的单位测试的任何想法/最佳实践?

这里的问题是ContextProcessAllWindowFunction类的内类。在Scala中,内类绑定到外部对象。因此,如果要模拟上下文并使用它来测试process()功能,则可以做以下操作:

val foo = new FooProcess
val mock = mock[foo.Context]
foo.process(...)

相关内容

  • 没有找到相关文章

最新更新