文章目录
问题:静态方法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. 只匹配类型,算解决问题吗(ಥ_ಥ)
花了时间不一定有收获,不花时间也许也有收获呢。
知道函数式参数怎么传的大神,留个言呗