假设我有这个
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中进行单元测试的任何想法/最佳做法?
答案 0 :(得分:0)
这里的问题是Context
是ProcessAllWindowFunction
类的内部类。在scala中,内部类绑定到外部对象。因此,如果您想模拟上下文并使用它来测试process()
函数,则可以执行以下操作:
val foo = new FooProcess
val mock = mock[foo.Context]
foo.process(...)