Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Testing flux with StepVerifier

I am learning Reactive Programming from that page: tutorial. And I am wondering why in the below example stact trace throws error with actual one record when I expect 4?

java.lang.AssertionError: expectation "expectNextCount(4)" failed (expected: count = 4; actual: counted = 1; signal: onComplete())

// TODO Create a StepVerifier that initially requests all values and expect 4 values to be received
StepVerifier requestAllExpectFour(Flux<User> flux) {
        return StepVerifier.withVirtualTime(() -> Flux.just(flux))
                .expectSubscription()
                .thenRequest(4)
                .expectNextCount(4)
                .expectComplete();
}

I'm wondering if I'm missing something here.

like image 488
Jan Testowy Avatar asked Oct 22 '25 08:10

Jan Testowy


1 Answers

try this

StepVerifier requestAllExpectFour(Flux<User> flux) {
    return StepVerifier.withVirtualTime(() -> flux)
            .expectSubscription() 
            .thenRequest(Long.MAX_VALUE) 
            .expectNextCount(4) 
            .expectComplete(); 
} 

or like this

StepVerifier requestAllExpectFour(Flux<User> flux) {
    return StepVerifier.create(flux)
            .expectSubscription() 
            .thenRequest(Long.MAX_VALUE) 
            .expectNextCount(4) 
            .expectComplete(); 
} 
like image 115
LuckyTerry Avatar answered Oct 24 '25 22:10

LuckyTerry