我有一个具有以下定义的用户类:
class User {
Integer id;
String name;
String addr;
//getters and setters
}
现在,在测试函数时,我需要返回一个存根的模拟用户列表,如:
Mockito.when(userService.getListOfUsers()).thenReturn(mockList);
现在可以按以下方式创建此mockList:
List mockList = Mockito.mock(ArrayList.class);
但是这个mockList可以是任何东西的列表。我无法确保其类型。有没有办法创建列表:
List<User> mockListForUser = Mockito.mock(?);
答案 0 :(得分:11)
您可能希望使用模拟对象填充普通列表。 E.g。
List<User> mockList = new ArrayList<>();
User mockUser1 = Mockito.mock(User.class);
// ...
mockList.add(mockUser1);
// etc.
请注意,默认情况下,Mockito会为任何返回集合的模拟方法返回一个空集合。因此,如果您只想返回一个空列表,Mockito已经为您做了。
答案 1 :(得分:5)
在测试中使用@Mock
注释,因为Mockito可以使用类型反射:
@Mock
private ArrayList<User> mockArrayList;