Я просто перешел в Spring Boot 1.4.0, чтобы использовать новые тестовые функции. Однако я, похоже, не могу использовать их совместно с Spock Framework. Рассмотрим следующий Spec:Проблемы с @SpringBootTest: Контекст не загружается и Spock не может @Autowire
@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
}
}
Вопрос заключается в том, что аннотацию даже не кажется, быть в состоянии найти MainWebApplication.class
(сидя на упаковке выше в иерархии), и, следовательно, нет никакого контекста, так что ничего до Autowire
. Я понимаю, что это довольно новый материал, но документация пока не очень хорошая, поэтому, вероятно, этот вопрос поможет и другим.
Спасибо. Странно, что вы не можете этого сделать. Ссылка в ответе помогла – thomi
Я также обнаружил трудный путь; к счастью, Spit's GitHub совершил с индикативными именами (например, поддержка Spring Boot 1.4 или что-то в этом роде) :) –