我找不到任何解释如何模拟在scalamock中不带参数的重载方法的文档,例如
public boolean isInfoEnabled(Marker marker); public boolean isInfoEnabled();
要模拟带标记的功能,可以简单地使用
(loggerMock.isInfoEnabled(_: Marker)).expects(*).returning(true)
但是如何模拟不带参数的其他方法呢?任何帮助表示赞赏.
我终于想通了:
(loggerMock.isInfoEnabled: () => Boolean).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