关于list对象的mockito
由于项目中用到了 list.contains() ,所以写单元测试时,用到了 List<String> typeAll = Mockito.mock(List.class); 然后一直尝试怎么add值,结果一直没写出来,然后请教后结果发现应该如下写:
private List<String> getTypeAll2(){
List<String> typeAll = Mockito.mock(List.class);
Mockito.when(typeAll.contains("1")).thenReturn(true); //当list包含"1"是,返回 true,一下照推
Mockito.when(typeAll.contains("2")).thenReturn(true);
Mockito.when(typeAll.contains("3")).thenReturn(true);
Mockito.when(typeAll.contains("4")).thenReturn(true);
Mockito.when(typeAll.contains("5")).thenReturn(false);
return typeAll;
}
由此想到,mock 出来的 list 对象应该并不存在实际的值,只是在你运行到 list.contains() 时 ,直接返回了 thenReturn 的值,mock 出来的 list 对象 仍是空的。