我正在尝试学习 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
?
答案 0 :(得分:1)
您有Mockito版本1.x,其中ArgumentMatcher
是抽象类。从Mockito 2.x开始,他们将其更改为interface
,允许使用lambda。
ArgumentMatcher的源代码显示:
如果您将依赖项修复到较新版本的Mockito,它将可以使用。