Я использовал учебник lite-rx-api-hands-on , чтобы попытаться узнать о реакторе, и я немного озадачен результатами одного из испытаний, пробуя виртуальное время с StepVerifier.
Это прекрасно работает:
@Test
public void expect10Elements() {
StepVerifier.withVirtualTime(() -> Flux.interval(Duration.ofSeconds(1)).take(10))
.thenAwait(Duration.ofSeconds(10))
.expectNextCount(10)
.expectComplete()
.verify();
}
Но это не сработает
@Test
public void expect10Elements() {
Flux<Long> flux = Flux.interval(Duration.ofSeconds(1)).take(10);
StepVerifier.withVirtualTime(() -> flux)
.thenAwait(Duration.ofSeconds(10))
.expectNextCount(10)
.expectComplete()
.verify();
}
Я не совсем понимаю, почему это происходит, если я не подписываться на поток до его публикации в издательстве. Кто-нибудь может помочь?