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

Ava*_*Ava 1 unit-testing scala scalamock

尝试模拟声明为的方法时

def foo: Int
Run Code Online (Sandbox Code Playgroud)

val mock = mock[MyClass]
(mock.foo _).expects().returning(10)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误 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

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

Phi*_*ipp 5

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

特征:

def noParamMethod(): String
Run Code Online (Sandbox Code Playgroud)

相关测试:

(() => mockedTrait.noParamMethod()).expects().returning("yey")
Run Code Online (Sandbox Code Playgroud)

它在代码中: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

值得一提的是,只有 Scala 2.13 才需要它来满足该版本中的编译器更改。