给定下面用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匹配预期的类型?
我只是嘲笑了一堂课,有什么暧昧的?
您不能像这样直接使用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还是叮当声?