文章目錄
問題:靜態方法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. 只匹配類型,算解決問題嗎(ಥ_ಥ)
花了時間不一定有收穫,不花時間也許也有收穫呢。
知道函數式參數怎麼傳的大神,留個言唄