【发布时间】:2019-03-13 14:13:33
【问题描述】:
我想在 Scala Spark 中测试一个从 RDD 写入输出的函数。
此测试的一部分是使用 jmock 在 RDD 上模拟地图
val customerRdd = mockery.mock(classOf[RDD[Customer]], "rdd1")
val transformedRddToWrite = mockery.mock(classOf[RDD[TransformedCustomer]], "rdd2")
mockery.checking(new Expectations() {{
// ...
oneOf(customerRdd).map(
`with`(Expectations.any(classOf[Customer => TransformedCustomer]))
)
will(Expectations.returnValue(transformedRddToWrite))
// ...
}})
但是,每当我尝试运行此测试时,都会收到以下错误:
not all parameters were given explicit matchers: either all parameters must be specified by matchers or all must be specified by values, you cannot mix matchers and values,尽管我已经为.map 的所有参数指定了匹配器。
我该如何解决这个问题? jMock 能否支持对带有隐式类标签的 Scala 函数参数进行匹配?
【问题讨论】:
标签: scala apache-spark jmock