我找不到任何留档来解释如何模拟在calamock中不接受参数的重载方法,例如
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