Mockito.when() java 流的子句

Mockito.when() clause for java streams

我想知道如何为下面的代码编写 when() 子句

Optional<Adapter> adapterOp = adapters.stream()
    .filter(adapter -> adapter
    .getName.equals(someName)).findFirst();

用于直接数据序列处理,不作为进一步处理。

如果您需要在单元测试期间以某种方式操作 Stream,我会坚持以下规则:

  1. Mock/fake List<T> 从中创建 Stream<T> 或提供其最终输出。
  2. Mock/fake Stream 本身使用的 @FunctionalInterfaces (Predicate, Function...) 如果通过 class and/or 方法。
  3. 单独对处理本身进行单元测试。

如果你坚持使用 Mockito 模拟 Stream,你必须知道 Stream 是一个基于构建器设计模式的流畅接口 - 简而言之,每个方法 return 都是相同的类型 Stream<T>.这意味着您必须分别模拟链中的每个方法和 return 模拟 Stream<T> 实例的新实例。