当前位置:  开发笔记 > 编程语言 > 正文

Scalamock 3.模拟重载方法没有参数

如何解决《Scalamock3.模拟重载方法没有参数》经验,为你挑选了3个好方法。

我找不到任何解释如何模拟在scalamock中不带参数的重载方法的文档,例如

public boolean isInfoEnabled(Marker marker);
public boolean isInfoEnabled();

要模拟带标记的功能,可以简单地使用

(loggerMock.isInfoEnabled(_: Marker)).expects(*).returning(true)

但是如何模拟不带参数的其他方法呢?任何帮助表示赞赏.



1> user2715478..:

我终于想通了:

(loggerMock.isInfoEnabled: () => Boolean).expects().returning(true)

这个问题对我帮助很大.记录这样的东西仍然会很好.


这绝对应该记录在案.我花了大约一个小时寻找它.我正在考虑在文档中提交拉取请求.

2> Chris Suszyń..:

在scala 2.12中,这也有效(没有检查Intellij):

//noinspection ConvertibleToMethodValue
(tailer.run _: () => Unit) expects()



3> 小智..:

我正在使用这种方法,直到我意识到在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

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有