Sou*_*abh 4 java unit-testing mockito
我有一个具有以下定义的类User:
class User {
Integer id;
String name;
String addr;
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
现在,在测试函数时,我需要返回一个存根的模拟用户列表,例如:
Mockito.when(userService.getListOfUsers()).thenReturn(mockList);
Run Code Online (Sandbox Code Playgroud)
现在可以按如下方式创建此mockList:
List mockList = Mockito.mock(ArrayList.class);
Run Code Online (Sandbox Code Playgroud)
但是这个mockList可以是任何东西的列表.我无法确保其类型.有没有办法创建列表:
List<User> mockListForUser = Mockito.mock(?);
Run Code Online (Sandbox Code Playgroud)
Dun*_*nes 12
您可能希望使用模拟对象填充普通列表.例如
List<User> mockList = new ArrayList<>();
User mockUser1 = Mockito.mock(User.class);
// ...
mockList.add(mockUser1);
// etc.
Run Code Online (Sandbox Code Playgroud)
请注意,默认情况下,Mockito会为返回集合的任何模拟方法返回一个空集合.因此,如果您只想返回一个空列表,Mockito已经为您做了.
@Mock在测试中使用注释,因为Mockito可以使用类型反射:
@Mock
private ArrayList<User> mockArrayList;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20517 次 |
| 最近记录: |