假设我有一个类和一个相关的隐式类:
class Project
implicit class RichProject(p:Project) {
def searchFile(keyword:String):Seq[File] = {
p.getFiles.filter(_.name.contains(keyword))
}
}
然后我想模拟 specs2 测试中project
的searchFile
方法:
val project = mock[Project]
project.searchFile("aa") returns Seq(new File("/aaa"))
但它报告了一个NullPointException
,它似乎在真正的searchFile
内运行,而不是嘲笑它。
可以修复它吗?
当你编写project.searchFile
时,searchFile
不是一个属于模拟对象的方法,而是属于RichProject
类的方法。所以莫克托不能嘲笑它,会尝试执行它。
除了嘲笑RichProject
类本身之外,我不修复对此有修复方法。