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
相关产品推荐
相关产品推荐

