Интеграционное тестирование в Spring: TestContext Framework, конфигурация контекста с помощью скриптов Groovy
Чтобы загрузить ApplicationContext для ваших тестов с помощью скриптов Groovy, которые используют Groovy Bean Definition DSL, вы можете аннотировать свой тестовый класс с помощью @ContextConfiguration и настроить атрибут местоположений или значения с помощью массива, который содержит местоположения ресурсов скриптов Groovy. Семантика поиска ресурсов для сценариев Groovy такая же, как и для файлов конфигурации XML.
Включение поддержки скриптов Groovy
Поддержка использования скриптов Groovy для загрузки ApplicationContext в Spring TestContext Framework включается автоматически, если Groovy находится в пути к классам.
В следующем примере показано, как указать файлы конфигурации Groovy:
@ExtendWith(SpringExtension.class)
// ApplicationContext будет загружен
// из "/AppConfig.groovy" и
// "/TestConfig.groovy" в корне пути к классам
@ContextConfiguration({"/AppConfig.groovy", "/TestConfig.Groovy"})
class MyTest {
// тело класса...
}
Если в аннотации @ContextConfiguration опустить атрибуты location и value, TestContext framework попытается обнаружить сценарий Groovy по умолчанию. В частности, GenericGroovyXmlContextLoader и GenericGroovyXmlWebContextLoader определяют расположение по умолчанию на основе имени тестового класса. Если ваш класс называется com.example.MyTest, загрузчик контекста Groovy загружает контекст вашего приложения из "classpath:com/example/MyTestContext.groovy". В следующем примере показано, как использовать значение по умолчанию:
@ExtendWith(SpringExtension.class)
// ApplicationContext будет загружен из
// "classpath:com/example/MyTestContext.groovy"
@ContextConfiguration
class MyTest {
// тело класса...
}
Одновременное объявление конфигурации XML и скриптов Groovy
Вы можете объявить как файлы конфигурации XML, так и сценарии Groovy одновременно, используя атрибут location или value @ContextConfiguration. Если путь к настроенному расположению ресурса заканчивается на .xml, он загружается с помощью XmlBeanDefinitionReader. В противном случае он загружается с помощью GroovyBeanDefinitionReader.
В следующем листинге показано, как объединить и то, и другое в интеграционном тесте:
@ExtendWith(SpringExtension.class)
// ApplicationContext будет загружен из
// "/app-config.xml" и "/TestConfig.groovy"
@ContextConfiguration({ "/app-config.xml", "/TestConfig.groovy" })
class MyTest {
// тело класса...
}
Читайте также:
- Интеграционное тестирование в Spring: TestContext Framework, события выполнения теста
- Интеграционное тестирование в Spring: TestContext Framework, управление контекстом
- Интеграционное тестирование в Spring: TestContext Framework, конфигурация контекста с ресурсами XML
Комментарии
Отправить комментарий