Каков наилучший способ запуска теста интеграции (например, @IntegrationTest
) со Spock? Я хотел бы загрузить загрузочное приложение Spring и выполнить некоторые HTTP-вызовы для проверки всей функциональности.
Я могу сделать это с помощью JUnit (сначала приложение запускается, а затем выполняется тестирование):
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyServer.class)
@WebAppConfiguration
@IntegrationTest
class MyTest {
RestTemplate template = new TestRestTemplate();
@Test
public void testDataRoutingWebSocketToHttp() {
def a = template.getForEntity("http://localhost:8080", String.class)
println a
}
}
Но с Spock приложение не запускается:
@SpringApplicationConfiguration(classes = MyServer.class)
@WebAppConfiguration
@IntegrationTest
class MyTestSpec extends Specification {
RestTemplate template = new TestRestTemplate();
def "Do my test"() {
setup:
def a = template.getForEntity("http://localhost:8080", String.class)
expect:
println a
}
}
Для Spock, конечно, я указал правильные зависимости в файле сборки Gradle:
...
dependencies {
testCompile 'org.spockframework:spock-core:0.7-groovy-2.0'
testCompile 'org.spockframework:spock-spring:0.7-groovy-2.0'
}
...
Я что-то пропустил?