我找不到任何文档来解释如何模拟在 scalamock 中不带参数的重载方法,例如
public boolean isInfoEnabled(Marker marker);
public boolean isInfoEnabled();
要模拟采用 Marker 的函数,可以简单地使用
(loggerMock.isInfoEnabled(_: Marker)).expects(*).returning(true)
但是如何模拟其他不带参数的方法呢?任何帮助表示赞赏。
我找不到任何文档来解释如何模拟在 scalamock 中不带参数的重载方法,例如
public boolean isInfoEnabled(Marker marker);
public boolean isInfoEnabled();
要模拟采用 Marker 的函数,可以简单地使用
(loggerMock.isInfoEnabled(_: Marker)).expects(*).returning(true)
但是如何模拟其他不带参数的方法呢?任何帮助表示赞赏。
在 scala 2.12 中,这也有效(不检查 Intellij):
//noinspection ConvertibleToMethodValue
(tailer.run _: () => Unit) expects()
我一直在使用这种方法,直到我意识到在 Scala 2.12+ 中该解决方案已被弃用。
你会得到一个警告,比如
Eta-expansion of zero-argument method values is deprecated.
经过一番研究,我发现了这个解决方案:
(loggerMock.isInfoEnabled _ ).expects().returning(true)
或者
import scala.language.postfixOps
loggerMock.isInfoEnabled _ expects () returning true