You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot 3.x中GraphQlTester无法注入问题求助

解决SpringBoot 3.x中GraphQlTester注入失败的问题

可能的原因及解决方案

1. 检查依赖完整性

确保项目依赖中包含GraphQL核心及测试相关starter:

Maven(pom.xml):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-graphql</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

Gradle(build.gradle):

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-graphql'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

2. 调整测试类注解配置

若测试HTTP GraphQL端点,可替换@AutoConfigureGraphQlTester为@AutoConfigureHttpGraphQlTester,并注入对应类型的测试器:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureHttpGraphQlTester
class SpaceControllerTest {

    @Autowired
    private HttpGraphQlTester graphQlTester;
    
    // 测试用例
}

3. 确认GraphQL基础配置存在

项目中需包含GraphQL核心配置,比如src/main/resources/graphql/schema.graphqls文件,或带有@Controller注解的GraphQL控制器类,否则Spring不会自动生成GraphQlTester相关Bean。

4. 手动构建GraphQlTester实例

若自动配置失效,可手动通过MockMvc构建测试器:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureMockMvc
class SpaceControllerTest {

    @Autowired
    private MockMvc mockMvc;

    private GraphQlTester graphQlTester;

    @BeforeEach
    void setUp() {
        this.graphQlTester = HttpGraphQlTester.create(mockMvc);
    }
    
    // 测试用例
}

5. 校验版本兼容性

SpringBoot 3.x对应Spring GraphQL 1.2.x及以上版本,避免手动指定不兼容的依赖版本,优先使用SpringBoot依赖管理的版本。


内容的提问来源于stack exchange,提问作者sloksnk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:52:07