作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码:
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/
我是一名优秀的程序员,十分优秀!