根据其 Javadoc,Mono.elapse()
将产生Mono<Tuple2<Long, T>>
第一个值是订阅和第一个下一个信号之间经过的时间。
以下测试不起作用
StepVerifier.withVirtualTime(() -> Mono.just(1)
.delaySubscription(Duration.ofSeconds(1))
.elapsed(),
() -> VirtualTimeScheduler.enable(true), 1)
.thenAwait(Duration.ofSeconds(1))
.expectNextMatches(tuple2 -> tuple2.getT1() >= 1000 && tuple2.getT2() == 1)
.verifyComplete();
它会抛出异常:
java.lang.AssertionError: expectation "expectNextMatches" failed (predicate failed on value: 11,1)
我原以为经过的时间至少为 1000 毫秒,但结果只有 11 毫秒。
我在这里想念什么吗?