鉴于以下代码使用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匹配预期类型?
我只是嘲笑一个班级,有什么不明确的?
答案 0 :(得分:4)
你不能像这样直接使用mockito(你可以使用它,但不能让它看起来很漂亮)。看看scala test library。
您可以用最简单的方法解决问题,只需将MockitoSugar
混合到测试类中而不是导入Mockito._
,然后mock[Foo]
将按预期工作。
库提供了很多其他东西来在scala中编写惯用的测试代码,因此您应该阅读我链接到的网站上的一些文档和示例。