以下代码:
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"
)有什么想法吗?谢谢!
发布于 2014-11-15 01:02:46
ScalaMock支持两种不同的styes-期望值第一和记录然后验证(莫基托风格)。
对于期望--首先,使用mock创建假对象,使用expects设置期望。
对于记录然后验证,使用stub创建假对象,使用when设置返回值,使用verify验证调用。
在您的代码中,您使用的是mock (期望值优先)和when (记录-然后-验证)。改用expects,您应该会没事的。
(注意,您可以在单个测试中混合不同的样式,但不能针对单个假对象)。
https://stackoverflow.com/questions/26939963
复制相似问题