gpt4 book ai didi

ScalaMock 模拟一个特征给出 "MockFunction1 cannot be cast to StubFunction1"

转载 作者:行者123 更新时间:2023-12-01 07:13:31 29 4
gpt4 key购买 nike

以下代码:

import org.scalamock.scalatest.MockFactory
import org.scalatest.FlatSpec

trait SomeTrait {
def getLongByInt(int: Int): Long
}

class TestScalaMock extends FlatSpec with MockFactory {
"Scala Mock" should "mock my trait" in {
val someTrait = mock[SomeTrait]
(someTrait.getLongByInt _) when (1) returns 2L
assert(2L == someTrait.getLongByInt(1))
}
}

给我一个运行时错误 org.scalamock.MockFunction1 cannot be cast to org.scalamock.StubFunction1 .我的项目依赖项是:
scalaVersion := "2.11.0"

libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % "2.3.7",
"com.typesafe.akka" %% "akka-testkit" % "2.3.7",
"org.scalatest" % "scalatest_2.11" % "2.2.1" % "test",
"org.scalamock" %% "scalamock-scalatest-support" % "3.2" % "test"
)

有任何想法吗?谢谢!

最佳答案

ScalaMock 支持两种不同的风格——期望优先和记录然后验证(Mockito 风格)。

对于期望优先,使用 mock创建假对象和expects设定期望。

对于记录然后验证,使用 stub创建假对象,when设置返回值和 verify以验证调用。

在您的代码中,您使用的是 mock (期望优先)与 when 一起(记录然后验证)。使用 expects相反,你应该没事。

(注意,您可以在单个测试中混合不同的样式,但不能用于单个假对象)。

关于ScalaMock 模拟一个特征给出 "MockFunction1 cannot be cast to StubFunction1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939963/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com