1

我有一个关于我试图在 Scala 中使用 Mockito 实现的单元测试的问题。我也查找了 ScalaMock,但听起来也没有提供该功能。我想也许我正在从狭隘的方式寻找解决方案,并且可能会有不同的观点或方法来处理我所做的事情,因此欢迎您提出所有意见。

基本上,我想使用隐式转换来模拟一个可用于对象的函数,并且我没有任何控制来改变它是如何完成的。因为我是图书馆的用户。具体的例子类似于下面的场景

rdd: RDD[T] = //existing RDD
sqlContext: SQLContext = //existing sqlcontext
import sqlContext.implicits._
rdd.toDF() 
/*toDF() doesn't originally exist at RDD but is implicitly added when importing sqlContext.implicits._*/

现在在测试中,我正在模拟rddsqlContext我想模拟toDF()函数。我无法模拟该函数toDF(),因为它在 RDD 级别上不存在。即使我做了一个简单的技巧,导入模拟的sqlContext.implicit._ 我也会收到一个错误,即无法模拟对象不可公开使用的任何函数。我什至试图模拟隐式执行的代码,直到toDF()我陷入了我也无法模拟的 Final/Pivate[in可访问] 类。您的建议非常受欢迎。提前致谢 :)

4

0 回答 0