簡體   English   中英

參數無法識別的Mockito ArgumentMatcher lambda函數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM