题记:单元测试的过程中,遇到泛型mock的问题;重新温习一遍,阅读(core java 泛型)
xmind格式(可下载) :
整理过程中,记录为xmind格式单元测试遇到的问题,简化后如下:
1 public List<? extends Date> getDateT() {
2 return null;
3 }
4 public List<Date> getDate() {
5 return null;
6 }
7 public void mockGetDate() {
8 TestMain main = mock(TestMain.class);
9 when(main.getDate()).thenReturn(new ArrayList<Date>()); //编译OK
10 /*
11 * The method thenReturn(List<capture#2-of ? extends Date>) in the type
12 * OngoingStubbing<List<capture#2-of ? extends Date>>
is not applicable for the arguments (ArrayList<Date>)
13 */
14 when(main.getDateT()).thenReturn(new ArrayList<Date>()); //编译错误
15 when(main.getDateT()).thenReturn(new ArrayList<Timestamp>()); //编译错误
16 when(main.getDateT()).thenReturn(new ArrayList<Object>()); //编译错误
17 when(main.getDateT()).thenReturn(new ArrayList()); //编译OK
18 }
仍没理解,哪位大仙,能帮我解释下 ?