我将Scalamock与ScalaTest一起使用,并尝试模拟Java接口(interface)。我目前有:

private val _iface = mock [MyInterface]

现在我想做
_iface expects `someMethod returning "foo" once

但是编译器找不到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"
  }
}

如果没有,请检查ScalaMock proxy mocks unit tests以获取更多示例。

关于Scalamock:如何获取Proxy模拟的 "expects"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29841267/

10-11 21:19