2016-07-12 6 views
4

Injektion Obwohl ich das Frühlings Boot-Guide, gefolgt, wenn sie versuchen:WebApplicationContext hat Autowire nicht, wenn sie in Spock Spezifikation

@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()) 
    } 
} 

bekomme ich nur die Meldung, dass ein WebApplicationContext ist einfach nicht injiziert. Ich habe

<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> 

In meiner .pom, auch, wie der Leitfaden berät, aber immer noch keinen Erfolg. Alles was mir fehlt? Ich brauche den App-Kontext, damit alle Bohnen injiziert werden. Irgendwelche Ideen?

+0

Duplizieren von http://stackoverflow.com/questions/24405727/integration-test-with-spring-boot-and-spock/24412145#24412145? –

+0

Unwahrscheinlich, da ich diese Problemumgehung ohne Erfolg versucht habe. – thomi

Antwort

2

Können Sie versuchen, die mockMvc-Konstruktion auf die setup-Methode zu verschieben?

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

Das schien den Trick getan zu haben! Groß! Vielen Dank! – thomi

Verwandte Themen