2016-08-04 3 views
4

Я просто перешел в 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. Я понимаю, что это довольно новый материал, но документация пока не очень хорошая, поэтому, вероятно, этот вопрос поможет и другим.

ответ

2

Текущая версия Spock несовместима с аннотацией Spring Boot 1.4 @SpringBootTest, вы должны обновить версию Spock до версии 1.1, если хотите использовать новые аннотации.

Для получения дополнительной информации см. this answer.

+0

Спасибо. Странно, что вы не можете этого сделать. Ссылка в ответе помогла – thomi

+1

Я также обнаружил трудный путь; к счастью, Spit's GitHub совершил с индикативными именами (например, поддержка Spring Boot 1.4 или что-то в этом роде) :) –

 Смежные вопросы

  • Нет связанных вопросов^_^