spring - 在 Spock 规范中注入(inject)时,WebApplicationContext 不会 Autowiring

标签 spring maven spring-boot spock mockmvc

尽管我遵循了 Spring Boot Guide,但在尝试时:

@SpringApplicationConfiguration(classes=MainWebApplication.class, initializers = ConfigFileApplicationContextInitializer.class)
@WebAppConfiguration
@ActiveProfiles("integration-test")

class FirstSpec extends Specification{
  @Autowired
  WebApplicationContext webApplicationContext

  @Shared
  MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build()

  def "Root returns 200 - OK"(){

      when:
      response = mockMvc.perform(get("/"))

      then:
      response.andExpect(status().isOk())
  }
}

我刚刚得到消息,WebApplicationContext 只是没有注入(inject)。我有
    <dependency>
        <groupId>org.spockframework</groupId>
        <artifactId>spock-spring</artifactId>
    </dependency>
    <dependency>
        <groupId>org.spockframework</groupId>
        <artifactId>spock-maven</artifactId>
        <version>0.7-groovy-2.0</version>
    </dependency>

在我的 .pom 中,也正如指南所建议的那样,但仍然没有成功。有什么我想念的吗?我需要应用程序上下文,以便注入(inject)所有 bean。有任何想法吗?

最佳答案

您可以尝试将 mockMvc 构造移动到 setup方法?

def setup() {
    mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build()
}

关于spring - 在 Spock 规范中注入(inject)时,WebApplicationContext 不会 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38336783/

相关文章:

java - MockMvc 抛出 HttpMediaTypeNotSupportedException 状态预期为 : 201 but was 415

java - 如何将托管bean(非静态)注入(inject)静态方法?

java - 线程池为 7 的 Spring 调度程序无法正常工作

java - 由于NoClassDefFoundError无法启动嵌入式容器

java - 多模块JavaFX maven项目打包问题

JAVA ObjectNode 获取为空

Spring 批处理不处理所有记录

spring - 无法找到 Spring NamespaceHandler 错误

spring - Keycloak:作为 docker 服务运行时无效的 token 颁发者

java - 当从不同的存储库下载 2 个相同的 jar 时,Maven 如何选择使用哪个 .jar