Согласно его 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 мс.
Я что-то здесь пропускаю?