java - 从“@WebFluxTest”迁移到“@SpringBootTest”后,集成测试中的连接被拒绝
问题描述
我从 Spring Boot 反应式迁移到 mvc。我迁移了控制器,现在我尝试迁移集成测试。
控制器的测试是这样注释的,如果我运行测试它就可以工作。
@RunWith(SpringRunner.class)
@WebFluxTest
public class MyIntegrationTest {
}
然后我像这样替换WebFluxTest
注释
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureWebTestClient
public class MyIntegrationTest {
}
如果我运行这个测试,我有reactor.core.Exceptions$ReactiveException: io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:8080
. 任何想法如何解决它?
解决方案
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
将在随机端口上加载并启动您的完整应用程序。
@AutoConfigureWebTestClient
将加载你的应用程序的模拟,然后配置一个 WebTestClient 去那个模拟。
您正在告诉 Spring 启动应用程序并加载模拟。
所有这些在文档中都有很好的解释,所以请阅读那里然后决定是否要加载整个应用程序,或者只是在执行测试时模拟它。
推荐阅读
- c# - Equinox 项目迁移数据库
- jquery - 如何从表中获取所有 td 值?
- python - 在 python 3.7 和 3.5 上安装旧版本的 scikit-learn 以实现 SVM 模型兼容性的问题
- android - 没有从 Tesseract OCR 中获得有效的结果作为 newocr 生产
- node.js - 将 node_modules 上传到 Nexus 托管的 NPM 存储库
- python - 两个数组的交点(作为数据集)
- java - 从 firebase 检索的数据始终为空
- ios - 我的应用程序在我的设备上运行良好,但在 Apple 测试中崩溃找不到原因
- r - R中的源用户定义函数
- python - 定位最近的按钮 Selenium Python