gpt4 book ai didi

java - Mockito ArgumentMatcher lambda 函数参数无法识别方法

转载 作者:行者123 更新时间:2023-11-30 02:05:15 25 4
gpt4 key购买 nike

我正在尝试学习Mockito框架并实现一些模拟。目前,我想使用 ArgumentMatcher 来检查传递的对象是否匹配。我发现过去可以通过创建一个扩展 ArgumentMatcher 的新类来实现这一点。不过,现在可以使用 Java 8 lambda 函数。这就是我尝试实现它的方式:

private ArgumentMatcher<User> matchUser(User user) {
return u -> u != null && user.getId() == u.getId();
}

IntelliJ 给我一个错误,因为它告诉我 u 没有 getId 方法。u 类型不应该被推断为 User 吗?

最佳答案

您有 Mockito 版本 1.x,其中 ArgumentMatcher 是一个抽象类。从 Mockito 2.x 开始,他们将其更改为接口(interface),允许使用 lambda。

ArgumentMatcher的源代码显示:

如果您将依赖项修复为更新版本的 Mockito,它就会起作用。

关于java - Mockito ArgumentMatcher lambda 函数参数无法识别方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51547743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com