Mockito:对重载定义

时间:2016-12-27 00:04:31

标签: scala mockito

鉴于以下代码使用Mockito模拟Scala类,我收到错误并且无法编译:

import org.mockito.Mockito._

class Testeable {
  def fun1 = 1
  def fun2 = 2
}

object test {

  def getMock = {
      val testMock = mock[Testeable]  // <-- this line throws the error
      when(testMock.fun1).thenReturn(3)
      testMock
  }

}

错误是:

  

对重载定义的模糊引用,两种方法都是模拟的   对象Mockito的类型(x $ 1:Class [common.Testeable],x $ 2:   org.mockito.MockSettings)common.Testeable和方法模拟对象   Mockito类型(x $ 1:Class [common.Testeable],x $ 2:   org.mockito.stubbing.Answer [_])common.Testeable匹配预期类型?

我只是嘲笑一个班级,有什么不明确的?

1 个答案:

答案 0 :(得分:4)

你不能像这样直接使用mockito(你可以使用它,但不能让它看起来很漂亮)。看看scala test library。 您可以用最简单的方法解决问题,只需将MockitoSugar混合到测试类中而不是导入Mockito._,然后mock[Foo]将按预期工作。 库提供了很多其他东西来在scala中编写惯用的测试代码,因此您应该阅读我链接到的网站上的一些文档和示例。