繁体   English   中英

Lambda对Jmockit的期望

[英]Lambda expectations in Jmockit

我有一个I / F

public interface NumberIF { public Integer getNumber(); }

当我尝试调用以下函数时;

public void func(NumberIF data)

我对lambda使用以下方式

func(() -> 5)

问题是我无法将上述功能与JMockit期望相匹配...

new Expectations() { { someclass.func(() -> 5); }

对于Callable<T>对象, .equals方法总是比较某种ID号,而不是存储在其中的文字对象。 有没有解决此问题的方法?

JMockit使用equals方法(默认情况下比较对象ID)匹配期望/验证块中的参数。

在您的示例中,由lambda表达式( () -> 5 )创建的对象未实现equals方法,因此将比较对象ID。

底线:如果您真的想比较Callable<T>对象,则必须在具体实现中实现equals ,或者需要确保在期望块中使用与“生产代码”调用中相同的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM