Ash*_*tap 7 java mockito java-8
我正在使用Mocikto框架(版本1.9.5)在我的项目中使用Java 1.7进行单元测试,现在我正在迁移我的项目来构建和运行Java 1.8.
在我的一个单元测试中,我试图模仿以下方法
public <T> List<T> myMethod(final String sql, final MyMapper<T> MyMapper, final Argument... args)
Run Code Online (Sandbox Code Playgroud)
用这个代码
String learningId = "testLeaId";
String catalogId = "testCatId";
List<String> returnList = new ArrayList<String>();
returnList.add(catalogId);
when(myService.myMethod(Mockito.anyString(), Mockito.any(MyMapper.class), (Argument[]) Mockito.anyVararg())).thenReturn(returnList);
Run Code Online (Sandbox Code Playgroud)
当我在我的pom.xml中将Java版本升级到1.8时,此代码适用于Java 1.7,我收到以下错误...
[ERROR] The method myMethod(String, MyMapper<T>, Argument...) in the type MyService is not applicable for the arguments (String, MyMapper, Argument)
C:\somepath\MyDaoTest.java:59
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个错误吗?谢谢
我认为 Java 8 更节省类型,因为您想要 aMyMapper<T>但只能使用MyMapper.
解决方案可能是使用
Mockito.<MyMapper<ConcreteType>>any()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
531 次 |
| 最近记录: |