如何使用ScalaMock 5.0.0模拟没有参数列表的方法



当试图模拟声明为的方法时

def foo: Int

带有

val mock = mock[MyClass]
(mock.foo _).expects().returning(10)

我出错了Error: Methods without a parameter list and by-name params can no longer be converted to functions as `m _`, write a function literal `() => m` instead

有一个技巧可以用来编写函数文字,但我不太明白如何将代码转换为等效的函数文字。

很高兴看到人们已经在使用ScalaMock 5了!我们在单元测试中的测试用例如下:

特点:

def noParamMethod(): String

相关测试:

(() => mockedTrait.noParamMethod()).expects().returning("yey")

它在代码中:https://github.com/paulbutcher/ScalaMock/blob/master/shared/src/test/scala/org/scalamock/test/mockable/TestTrait.scala

以及对它的测试:https://github.com/paulbutcher/ScalaMock/blob/22c26174bfb99b403af2be38ab35cabfe58f4c5f/shared/src/test/scala/org/scalamock/test/scalatest/BasicTest.scala#L39

值得一提的是,只有Scala2.13才能满足该版本的编译器更改。

相关内容

  • 没有找到相关文章

最新更新