模拟规范 2 中隐式类的方法



假设我有一个类和一个相关的隐式类:

class Project
implicit class RichProject(p:Project) {
  def searchFile(keyword:String):Seq[File] = {
    p.getFiles.filter(_.name.contains(keyword))
  }
}

然后我想模拟 specs2 测试中projectsearchFile方法:

val project = mock[Project]
project.searchFile("aa") returns Seq(new File("/aaa"))

但它报告了一个NullPointException,它似乎在真正的searchFile内运行,而不是嘲笑它。

可以修复它吗?

当你编写project.searchFile时,searchFile不是一个属于模拟对象的方法,而是属于RichProject类的方法。所以莫克托不能嘲笑它,会尝试执行它。

除了嘲笑RichProject类本身之外,我不修复对此有修复方法。

相关内容

  • 没有找到相关文章

最新更新