gpt4 book ai didi

spring-boot - WebTestClient 配置了错误的端口

转载 作者:行者123 更新时间:2023-12-05 07:06:00 27 4
gpt4 key购买 nike

我用 Spock 编写了集成测试。将 Spring 引导上下文配置为随机端口。文档声称 sprig 应该向我注入(inject)正确配置的 WebTestClient 实例,但是当我试图通过那些“自动配置的实例”进行调用时,出现以下错误:

Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/127.0.0.1:8080
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ⇢ Request to POST http://localhost:8080/sign-up [DefaultWebClient]

这是我的代码:基础整合测试

@SpringBootTest(webEnvironment = RANDOM_PORT, classes= Application.class)
@ContextConfiguration
@EnableConfigurationProperties
abstract class BaseIntegrationSpec extends Specification {

使用 WebTestClient 类:

@Component
class WebTestClientWrapper {

@Autowired
private WebTestClient webTestClient

@Autowired
private ObjectMapper objectMapper

最佳答案

我在我的 kotlin 项目中也遇到了这个错误,并且能够通过我的测试目录中的以下配置解决这个问题。

import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.ApplicationContext
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.test.web.reactive.server.WebTestClient

@Configuration
class TestConfiguration {

@Autowired
lateinit var appContext: ApplicationContext

@Primary // <-- Is added because IntelliJ gave some warning that there are two beans
@Bean
fun createWebTestClient(): WebTestClient {

return WebTestClient.bindToApplicationContext(appContext).build()
}
}

本质上,我必须自己创建 WebTestClient 并将其绑定(bind)到应用程序上下文。之后动态端口解析按预期工作。

您可以像以前使用 @Autowire 或构造函数注入(inject)一样使用 WebTestClient。

关于spring-boot - WebTestClient 配置了错误的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62627911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com