mock对象

r1zk6ea1  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(447)

在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)
    })
  }

}
wvt8vs2t

wvt8vs2t1#

你不需要嘲笑 DataStream . 如果您想测试您编写的业务逻辑,您可以简单地单元测试您实现的功能(如mapfunction、reducefunction等)。
对于其他情况,您可以使用itcases测试您的计算。在这里您可以找到一个如何测试管道的示例。你需要添加 flink-test-utils 模块到maven依赖项。

相关问题