Project Reactor 测试从未完成
Project Reactor test never completes
我创建了一个简单的 Kafka 消费者,它 returns 一个 Flux
个对象(接收到的消息),我正在尝试使用 StepVerifier
.
在我的测试中,我做了类似的事情:
Flux<Pojo> flux = consumer.start();
StepVerifier.create(flux)
.expectNextMatches(p -> p.getList().size() == 3)
.verifyComplete();
断言工作正常(如果我将值从 3
更改为其他值,则测试失败)。但是,如果断言通过,则测试永远不会退出。
我也试过像这样使用 verify
方法:
StepVerifier.create(flux)
.expectNextMatches(f -> f.getEntitlements().size() == 3)
.expectComplete()
.verify(Duration.ofSeconds(3));
在这种情况下,我得到这个错误:
java.lang.AssertionError: VerifySubscriber timed out on false
知道我做错了什么吗?
Kafka Flux
可能是无限的,因此它永远不会发出测试等待的 onComplete
信号。如果您只对测试第一个值感兴趣,可以调用 .thenCancel().verify()
。
我创建了一个简单的 Kafka 消费者,它 returns 一个 Flux
个对象(接收到的消息),我正在尝试使用 StepVerifier
.
在我的测试中,我做了类似的事情:
Flux<Pojo> flux = consumer.start();
StepVerifier.create(flux)
.expectNextMatches(p -> p.getList().size() == 3)
.verifyComplete();
断言工作正常(如果我将值从 3
更改为其他值,则测试失败)。但是,如果断言通过,则测试永远不会退出。
我也试过像这样使用 verify
方法:
StepVerifier.create(flux)
.expectNextMatches(f -> f.getEntitlements().size() == 3)
.expectComplete()
.verify(Duration.ofSeconds(3));
在这种情况下,我得到这个错误:
java.lang.AssertionError: VerifySubscriber timed out on false
知道我做错了什么吗?
Kafka Flux
可能是无限的,因此它永远不会发出测试等待的 onComplete
信号。如果您只对测试第一个值感兴趣,可以调用 .thenCancel().verify()
。