Project Reactor 测试从未完成

Luc*_*ano 4 project-reactor

我创建了一个简单的 Kafka 消费者,它返回一个Flux对象(收到的消息),我正在尝试使用StepVerifier.

在我的测试中,我做这样的事情:

Flux<Pojo> flux = consumer.start();
StepVerifier.create(flux)
  .expectNextMatches(p -> p.getList().size() == 3)
  .verifyComplete();
Run Code Online (Sandbox Code Playgroud)

断言工作正常(如果我将值更改为其他值3,则测试失败)。但是,如果断言通过,则测试永远不会退出。

我也尝试过使用这样的verify方法:

StepVerifier.create(flux)
  .expectNextMatches(f -> f.getEntitlements().size() == 3)
  .expectComplete()
  .verify(Duration.ofSeconds(3));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我收到此错误:

java.lang.AssertionError: VerifySubscriber timed out on false
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

Sim*_*slé 9

KafkaFlux可能是无限的,所以它永远不会发出onComplete测试等待的信号。.thenCancel().verify()如果您只对测试第一个值感兴趣,则可以致电。