在mockito中使用apacheflink和scala。尝试在模拟数据流中注入一个字符串来测试两个测试用例。我不知道如何用一些数据来模拟flink的datastream对象。有什么想法吗?
import org.apache.commons.lang3.StringUtils
import org.apache.flink.streaming.api.scala.DataStream
import org.scalatest.FunSuite
import org.scalatest.mockito.MockitoSugar
class MockTest extends FunSuite with MockitoSugar {
test ("Test DataStream with valid string") {
var mockDataStream = mock[DataStream[String]]
// inject "hello" to this datastream
filterOutBlanks(mockDataStream)
// verify mockDataStream is not empty
}
test ("Test DataStream with empty string") {
var mockDataStream = mock[DataStream[String]]
// inject " " to this datastream
filterOutBlank(mockDataStream)
// verify mockDataStream is empty
}
def filterOutBlank(source: DataStream[String]): DataStream[String] = {
source.filter(x => {
StringUtils.isNotBlank(x)
})
}
}
1条答案
按热度按时间wvt8vs2t1#
你不需要嘲笑
DataStream
. 如果您想测试您编写的业务逻辑,您可以简单地单元测试您实现的功能(如mapfunction、reducefunction等)。对于其他情况,您可以使用itcases测试您的计算。在这里您可以找到一个如何测试管道的示例。你需要添加
flink-test-utils
模块到maven依赖项。