PowerMock 靜態方法模擬問題排查,結果是函數參數問題

問題:靜態方法User.convert()的模擬,未匹配到預期值。

在這裏插入圖片描述

1. 檢查靜態方法的模擬過程
Mocking Static Method:
// 1.類註解:@PrepareForTest(Static.class) //Static.class 是包含 static methods的類
方法內:
// 2.模擬靜態類(使用PowerMockito.spy(class)模擬特定方法)
PowerMockito.mockStatic(Static.class);
// 3.攔截:設置期望值
Mockito.when(Static.firstStaticMethod(param)).thenReturn(value);

檢查過程沒問題。 直接攔截靜態方法試試

2. 直接攔截靜態方法

在這裏插入圖片描述
驗證通過,模擬靜態方法沒問題。

3. 初步定義爲參數問題:函數式參數
// 攔截的方法
<E, R> List<R> queryForList(Object var1, Class<E> var2, Function<E, R> var3);

Function類型的參數精確配置不應該 User::convert 這樣傳。那該怎麼傳呢?我在官網和百度扒資料,然而不知道是沒有,還是沒找對。反正,沒找到該怎麼解決。
沒辦法,只好先模糊匹配下了

4. 只匹配類型,算解決問題嗎(ಥ_ಥ)

在這裏插入圖片描述

花了時間不一定有收穫,不花時間也許也有收穫呢。
知道函數式參數怎麼傳的大神,留個言唄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章