我想模拟一个列表
private Item populateData(Item i) {
List<Person> groupIdList = xyzDao.getData(id);
for (Person p: groupIdList) {
}
}
Run Code Online (Sandbox Code Playgroud)
我想通过模拟groupIdList来测试函数如何执行此操作?
官方的Mockito文档有点误导.你不应该模拟列表(没有太多逻辑的数据容器),你应该模拟行为.在你的情况下xyzDao.getData(id)是行为.模拟xyzDao并返回一些虚假数据:
//given
XyzDao xyzDaoMock = mock(xyzDao);
//inject to XyzService class under test
given(xyzDaoMock.getData(id)).willReturn(Arrays.asList(...));
//when
xyzService.populateData() //...XyzService uses mocked XyzDao
//then
Run Code Online (Sandbox Code Playgroud)
在随后部分,您应该要么verify()是xyzDao被称为或使返回确认正确的列表.很难根据您的代码段告诉您需要什么.
| 归档时间: |
|
| 查看次数: |
6567 次 |
| 最近记录: |