【发布时间】:2021-03-26 08:42:32
【问题描述】:
我有一个 Kafka 处理 Spring Boot 应用程序,它有一个在应用程序启动时运行的方法(使用 ApplicationRunner)并启动一个利用 blockLast() 的 Flux,因为我发现调用 subscribe() 不会发生任何事情,因为它不会阻塞主线程,我发现它可以(并且将会)在 Flux 发出任何元素之前完成。
现在我正在为此方法创建集成测试,我遇到的问题是上下文/应用程序永远不会完全启动,所以我的测试代码永远不会执行,应用程序启动只是达到某个点并挂起永远。当我将 blockLast() 更改为 subscribe() 时,测试代码运行(尽管我不确定它测试的 Flux 代码是否以这种方式正确运行,到目前为止我只有一个微不足道的虚拟测试),我可以看到我的主要执行带有 Flux 代码的方法。有人对我如何在这种情况下创建集成测试有任何想法吗?
【问题讨论】:
标签: spring spring-boot project-reactor spring-boot-test reactor