Ich versuche Reactor virtuellen Zeit Funktion, aber die Testblöcke auf unbestimmte Zeit (ohne Timeout) oder wirft ein AssertionError
(mit Timeout) zu verwenden:Reactor StepVerifier.withVirtualTime Blöcke unbegrenzt
@Test
public void test() {
StepVerifier.withVirtualTime(() ->
Flux.just(1, 2, 3, 4).delayElements(Duration.ofSeconds(1)))
.expectSubscription()
.expectNextCount(4)
.expectComplete()
.verify(Duration.ofSeconds(10));
}
Die Ausnahme ist:
java.lang.AssertionError: VerifySubscribertimed out on [email protected]
Das gleiche Beispiel mit Echtzeit funktioniert wie erwartet:
@Test
public void test2() {
StepVerifier.create(Flux.just(1, 2, 3, 4).delayElements(Duration.ofSeconds(1)))
.expectSubscription()
.expectNextCount(4)
.expectComplete()
.verify(Duration.ofSeconds(10));
}
Ich kann keinen Fehler in meinem ersten Beispiel nach Manipulating Time von der Referenz sehen.
Was ist los?