关于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  对象  仍是空的。

posted @ 2017-03-02 18:10  methink静静  阅读(918)  评论(0编辑  收藏  举报