如何对 Java 8 流进行单元测试?

Tan*_*ant 5 java testing unit-testing java-stream

list.stream().forEach(e -> { dbCall.delete(e.Id());});

列表中的每一项都会从数据库中删除。

假设列表中有3项,如何进行单元测试:

  1. 删除被调用了 3 次。
  2. 删除被称为“按顺序/顺序”,即列表中元素的顺序?

dan*_*niu 4

您可以使用 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);
Run Code Online (Sandbox Code Playgroud)