验证新的序列的数据; verifyComplete()相当于expectComplete().verify()。 2)flatMap - 元素映射为流 flatMap操作可以将每个数据元素转换/映射为一个流,然后将这些流合并为一个大的数据流。 注意到,流的合并是异步的,先来先到,并非是严格按照原始序列的顺序(如图蓝色和红色方块是交叉的)。 public final <R> ...
通过 StepVerifier.create()方法对一个流进行包装之后再进行验证。expectNext()方法用来声明测试时所期待的流中的下一个元素的值,而 verifyComplete()方法则验证流是否正常结束。类似的方法还有 verifyError()来验证流由于错误而终止。 清单21. 使用 StepVerifier 验证流中的元素 AI检测代码解析 StepVerifier.create(Flux...
verifyComplete(); } 图解上述操作: 转换&过滤操作 skip操作 代码语言:javascript 代码运行次数:0 运行 AI代码解释 @Test public void 过滤Flux中的数据() { //?skip操作,跳过指定数量的元素 Flux<Integer> flux = Flux.range(0, 10).skip(8); StepVerifier.create(flux) .expectNext(8) .expectNext(9) ...
flatmap也是对元素的转换,但是不同的是flatmap是将元素转换为流,再将流合并为一个大的流。 @TestpublicvoidreactorFlatMapTest(){StepVerifier.create(Flux.just("crabman","is","hero").flatMap(v->Flux.fromArray(v.split(""))).doOnNext(System.out::println)).expectNextCount(13).verifyComplete();}...
.expectNext("foo")// 第一个我们期望的信号是 onNext,它的值为 foo.expectNext("bar")// 第二个我们期望的信号是 onNext,它的值为 bar.expectErrorMessage("boom")// 最后我们期望的是一个终止信号 onError,异常内容应该为 boom.verify();// 使用 verify() 触发测试。
.verify(); 什么叫展平? mapper 函数把字符串转成大写,然后分割成一个一个字符。 Function<String, Publisher<String>> mapper = s -> Flux.just(s.toUpperCase().split("")); Flux<String> inFlux = Flux.just("hello", ".", "com");
.expectNext("foo")// 第一个我们期望的信号是 onNext,它的值为 foo.expectNext("bar")// 第二个我们期望的信号是 onNext,它的值为 bar.expectErrorMessage("boom")// 最后我们期望的是一个终止信号 onError,异常内容应该为 boom.verify();// 使用 verify() 触发测试。
verify或变体方法最终会返回一个Duration,这是实际的测试时长。 可见,withVirtualTime使我们不用实际等1天来完成测试了。 虚拟时间的功能是如何实现的呢?StepVerifier.withVirtualTime会在Reactor的调度器工厂方法中插入一个自定义的调度器VirtualTimeScheduler来代替默认调度器(那些基于时间的操作符通常默认使用Schedulers....
verifyComplete(); 更多用法请看 单元测试 原理 解析SQL查询语句,生成SQL抽象语法树。 遍历SQL抽象语法树,使用策略模式,根据不同的语法类型,编译生成针对Flux的转换函数。 条件使用(FilterFeature)进行创建。 查询列(columnMapper)使用ValueMapFeature,ValueFlatMapFeature,ValueAggMapFeature进行创建。 分组(groupBy)使用...
ContextImmutable(){String key="message";Mono<String>r=Mono.subscriberContext().map(ctx->ctx.put(key,"Hello"))//这里返回了一个新的,因此上面的设置失效了.flatMap(ctx->Mono.subscriberContext()).map(ctx->ctx.getOrDefault(key,"Default"));StepVerifier.create(r).expectNext("Default").verify...