Ich bin gerade zu Spring Boot 1.4.0 gewechselt, um die neuen Testfunktionen zu verwenden. Allerdings scheint es mir unmöglich zu sein, sie in Verbindung mit dem Spock-Framework zu verwenden. Betrachten Sie das folgende Spec:Probleme mit @SpringBootTest: Kontext wird nicht geladen und Spock kann nicht zu @Autowire wechseln
@SpringBootTest(classes=[MainWebApplication.class], webEnvironment =SpringBootTest.WebEnvironment.RANDOM_PORT)
class RestTemplateExampleSpec extends Specification{
@Autowired
private TestRestTemplate restTemplate
def "Web application is Reachable and Status is 200 - OK"(){
when: "The root address is called"
def response = restTemplate.getForObject("/", String.class)
then: "The status code is 200 - OK"
response.statusCode == HttpStatus.OK
}
def "Endpoint /admin/users is available"(){
when: "/admin/users is called"
def response = restTemplate.getForEntity("/admin/users", String.class)
then: "The status code is 200 - OK"
response.statusCode == HttpStatus.OK
}
}
Das Problem ist, dass die Anmerkung nicht einmal die MainWebApplication.class
(sitzt auf einem Paket in der Hierarchie höher) in der Lage sein zu finden scheint, und folglich gibt es keinen Zusammenhang, also nichts zu Autowire
. Ich weiß, das ist ziemlich neue Sachen, aber Dokumentation ist bisher nicht sehr gut, also wird diese Frage wahrscheinlich auch anderen helfen.
Vielen Dank. Komisch, dass du das nicht googeln kannst. Die Verbindung in der Antwort half – thomi
Ich fand auch den harten Weg heraus; Glücklicherweise hat Spocks GitHub sich mit indikativen Namen (z. B. Spring Boot 1.4 Unterstützung oder etwas in dieser Richtung) verpflichtet :) –