如何在Mockito中创建自定义数据类型的列表模拟



我有一个类User,定义如下:

class User {
  Integer id;
  String name;
  String addr;
  //getters and setters
}

现在,当测试一个函数时,我需要返回一个stub的mock Users列表,类似于:

Mockito.when(userService.getListOfUsers()).thenReturn(mockList);

现在这个mockList可以按如下方式创建:

List mockList = Mockito.mock(ArrayList.class);

但是这个mockList可以是任何东西的列表。我不能确定它的类型。有没有办法创建一个列表:

List<User> mockListForUser = Mockito.mock(?);

您可能希望用模拟对象填充一个普通列表。例如

List<User> mockList = new ArrayList<>();
User mockUser1 = Mockito.mock(User.class);
// ...    
mockList.add(mockUser1);
// etc.

注意,默认情况下,Mockito对于任何返回集合的模拟方法返回一个空集合。所以如果你只是想返回一个空列表,Mockito已经为你做了

在测试中使用@Mock注释,因为mockit可以使用类型反射:

@Mock
private ArrayList<User> mockArrayList;

相关内容

  • 没有找到相关文章

最新更新