如何使用ScalaMock模拟特征上的方法调用?

时间:2017-11-01 14:12:23

标签: scala scalatest scalamock

在您指出文档之前,请指出这个最小的失败示例有什么问题:

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

class StubbingTest extends FlatSpec with MockFactory {
  trait Foo {
    def f(x: Int): Int
  }

  "foo" should "stub" in {
    val foo = stub[Foo]

    (foo.f _).when(3).returns(4)

    assert(foo.f(3) == 4)
  }
}

第11行java.lang.NoSuchMethodException: com.sun.proxy.$Proxy4.mock$f$0()导致(foo.f _).when ...

根据文档,这应该有效。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我在浏览Scaladoc的过程中通过纯粹的运气想出来:

更改

import org.scalamock.scalatest.proxy.MockFactory

import org.scalamock.scalatest.MockFactory

我的IDE的自动导入失败了,但如果ScalaMock文档示例包含正确的导入,那将真的有用。