Я пытаюсь использовать функцию виртуального времени Reactor, но тест блокируется на неопределенный срок (без таймаута) или выдает AssertionError
(с таймаутом):
@Test
public void test() {
StepVerifier.withVirtualTime(() ->
Flux.just(1, 2, 3, 4).delayElements(Duration.ofSeconds(1)))
.expectSubscription()
.expectNextCount(4)
.expectComplete()
.verify(Duration.ofSeconds(10));
}
Исключение составляет:
java.lang.AssertionError: VerifySubscribertimed out on reactor.core.publisher.FluxConcatMap$ConcatMapImmediate@66d1af89
Тот же пример с реальным временем работает так, как ожидалось:
@Test
public void test2() {
StepVerifier.create(Flux.just(1, 2, 3, 4).delayElements(Duration.ofSeconds(1)))
.expectSubscription()
.expectNextCount(4)
.expectComplete()
.verify(Duration.ofSeconds(10));
}
Я не вижу ошибки в своем первом примере после манипулирования временем из ссылка.
Что случилось?