从“@WebFluxTest”迁移到“@SpringBootTest”后,集成测试中的连接被拒绝
Connection refused in integration test after migration from `@WebFluxTest` to `@SpringBootTest`
我从 Spring 引导反应迁移到 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 启动应用程序并加载模拟。
所有这些在文档中都有很好的解释,所以请阅读那里,然后决定是否要加载整个应用程序,或者只是在执行测试时模拟它。
我从 Spring 引导反应迁移到 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 启动应用程序并加载模拟。
所有这些在文档中都有很好的解释,所以请阅读那里,然后决定是否要加载整个应用程序,或者只是在执行测试时模拟它。