list.stream().forEach(e -> { dbCall.delete(e.Id());});
列表中的每个项目都将从数据库中删除。
假设列表中有3个项目,如何进行单元测试:
答案 0 :(得分:2)
您可以使用JUnit' InOrder
。
DbCall dbCall = mock(DbCall.class);
List<Element> list = Arrays.asList(newElement(1), newElement(2), newElement(3));
runDeleteMethod(list);
InOrder inorder = inOrder(dbCall);
inorder.verify(dbCall).delete(1);
inorder.verify(dbCall).delete(2);
inorder.verify(dbCall).delete(3);
答案 1 :(得分:1)
只需验证应调用的预期时间dbCall.delete()
。
这看起来像这样:
Mockito.verify(dbCall, times(3L)).delete(any(String.class));
Streams可以并行工作,因此无法验证序列。您可以使用索引上的verify元素执行此操作,但序列将被忽略。 Mockito将验证使用的呼叫+值。这需要进行单元测试。