以下是我的单元测试代码。我想测试生成无限事件并且不应该期望事件完成的条件。我试图使expectComplete()失败。
@Test
public void testInfiniteEventGeneration() {
Flux<Integer> flux = serv.myEvent(); // This method generates an infinite event.
assertThatExceptionOfType(AssertionError.class)
.isThrownBy(() -> StepVerifier.create(flux).
expectNextCount(1).expectNextCount(2).expectNextCount(3)
.expectComplete()
// eventComplete应该失败,因为事件是在ininteintely中生成的。
.verify())
.withMessageEndingWith("Event should be infinite.");
}
需要帮助来实现它。还有其他更好的方法吗?
为了测试一些Publisher
是无限的,理论上,你应该等待无限期并检查它是否完成。当然,你不能在测试套件中这样做。
根据您的使用案例以及您想要检查的行为,您可以:
Publisher
是否在合理的持续时间内发送了大量值expectNoEvent(Duration)
可以检查thenCancel()
链接您的期望以取消订阅并结束测试