Project Reactor测试永远不会完成

时间:2018-02-15 17:28:01

标签: project-reactor

我创建了一个简单的Kafka使用者,它返回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

知道我做错了吗?

1 个答案:

答案 0 :(得分:3)

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