从specs2中的隐式类模拟一个方法

时间:2014-11-23 07:06:48

标签: scala mocking mockito specs2

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

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

然后我想在specs2测试中模拟searchFile的{​​{1}}方法:

project

但它会报告val project = mock[Project] project.searchFile("aa") returns Seq(new File("/aaa")) ,它似乎在真实的NullPointException内运行,而不是嘲笑它。

是否可以修复它?

1 个答案:

答案 0 :(得分:3)

当您编写project.searchFile时,searchFile不是属于模拟对象但属于RichProject类的方法。所以Mockito不能嘲笑它并试图执行它。

除了模仿RichProject类本身之外,我还没有解决这个问题。