[英]Mockito ArgumentMatcher lambda function with parameter not recognizing method
我正在嘗試學習Mockito框架並實現一些模擬 。 當前,我想使用ArgumentMatcher
來檢查傳遞的對象是否匹配。 我看到過去可以通過創建擴展ArgumentMatcher
的新類來實現。 但是,現在可以使用Java 8 lambda函數 。 這就是我試圖實現的方式:
private ArgumentMatcher<User> matchUser(User user) {
return u -> u != null && user.getId() == u.getId();
}
的IntelliJ是給我的錯誤,因為它告訴說u
不具備getId
方法。 Should't u
類型推斷User
?
您有Mockito版本1.x,其中ArgumentMatcher
是抽象類。 從Mockito 2.x開始,他們將其更改為interface
,從而允許使用lambda。
ArgumentMatcher的源代碼顯示:
如果您將依賴項修復到較新版本的Mockito,則可以使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.