rab*_*ens 5 scala scalatest scalamock
我正在将 Scalamock 与 ScalaTest 一起使用,并尝试模拟 Java 接口。我目前有:
private val _iface = mock [MyInterface]
Run Code Online (Sandbox Code Playgroud)
现在我想做
_iface expects `someMethod returning "foo" once
Run Code Online (Sandbox Code Playgroud)
但是编译器没有找到expects
.
我进口org.scalatest._
和org.scalamock.scalatest._
。我还缺少什么?
首先,代理模拟在 ScalaMock 3 中支持得不是很好,我认为它们将在 ScalaMock 4 中完全删除。你真的需要使用代理模拟而不是宏模拟吗?
这应该有效:
package example
import org.scalatest.FlatSpec
import org.scalatest.Matchers
import org.scalamock.scalatest.proxy.MockFactory
trait MyInterface {
def someMethod : String
}
class MyTest extends FlatSpec with Matchers with MockFactory {
"MyInterface" should "work" in {
val m = mock[MyInterface]
m.expects('someMethod)().returning("foo")
m.someMethod shouldBe "foo"
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有,请检查ScalaMock 代理模拟单元测试以获取更多示例。