[英]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.