当前位置: 首页 > 知识库问答 >
问题:

Mockito:对重载定义的不明确引用

罗兴运
2023-03-14

给定下面用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
  }

}

错误是:

对重载定义的引用不明确,类型为(x$1:class[common.testeable],x$2:org.Mockito.mocksettings)的对象Mockito中的方法mock和类型为(x$1:class[common.testeable],x$2:org.Mockito.stubbing.answhere[_])的对象Mockito中的方法mock匹配预期的类型?

我只是嘲笑了一堂课,有什么暧昧的?

共有1个答案

柴彬
2023-03-14

您不能像这样直接使用mockito(您可以使用它,但不能让它看起来这么漂亮)。看一下scala测试库。要解决当前的问题,您可以做的最简单的thinng就是将MockitoSugg混合到测试类中,而不是导入Mockito._,然后Mock[Foo]就会像您期望的那样工作。library还提供了许多其他东西来用scala编写地道的测试代码,所以您应该通读我链接到的站点上的一些文档和示例。

 类似资料:
  • 为什么我有这个错误? 错误:(5,18)对重载定义的引用不明确,类型为(x$1:String)布尔的类String中的方法startsWith和类型为(x$1:String,x$2:Int)布尔的类String中的方法startsWith匹配预期的类型?水果过滤器(_.startswith==“AP”) 水果过滤器(_.startswith==“AP”)

  • 我试图使用mockito在scala中模拟,如下所示 会有什么问题?

  • 我最近开始学习Scala和Play框架,在阅读Play框架的Anorm文档时,我得到了以下代码片段: 却被编译错误卡住了:

  • 我在尝试展平高度嵌套的结构时遇到以下错误: 组织。阿帕奇。火花sql。AnalysisException:对字段StructField(错误、StructType(数组、ArrayType(StructType(double,DoubleType,true)、StructField(int,IntegerType,true)、StructField(string,StringType,true))

  • 数据: 法典: 直方图模式: 例外: 虽然我明白为什么会发生这种情况,但我不知道如何解决这个问题。数据集是从数据库中的表创建的,可以包含任意数量的具有任意名称的列,包括< code>count 、< code>avg和其他“保留”字。 任何帮助。

  • 假设我们有以下简单的代码: 这段代码使用clang编译并打印“T”,但使用gcc我们有以下错误: 我的问题是哪个编译器有bug,gcc还是叮当声?