使用 Groovy 脚本进行上下文配置
要通过使用 Groovy Bean 定义 DSL 的 Groovy 脚本为测试加载 ApplicationContext
,可以使用 @ContextConfiguration
为测试类添加注解,并使用包含 Groovy 脚本资源位置的数组配置 locations
或 value
属性。Groovy 脚本的资源查找语义与 XML 配置文件 中描述的语义相同。
启用 Groovy 脚本支持
如果 Groovy 在类路径中,则会自动启用在 Spring TestContext 框架中使用 Groovy 脚本加载 ApplicationContext 的支持。
|
以下示例演示如何指定 Groovy 配置文件
-
Java
-
Kotlin
@ExtendWith(SpringExtension.class)
// ApplicationContext will be loaded from "/AppConfig.groovy" and
// "/TestConfig.groovy" in the root of the classpath
@ContextConfiguration({"/AppConfig.groovy", "/TestConfig.Groovy"}) (1)
class MyTest {
// class body...
}
1 | 指定 Groovy 配置文件的位置。 |
@ExtendWith(SpringExtension::class)
// ApplicationContext will be loaded from "/AppConfig.groovy" and
// "/TestConfig.groovy" in the root of the classpath
@ContextConfiguration("/AppConfig.groovy", "/TestConfig.Groovy") (1)
class MyTest {
// class body...
}
1 | 指定 Groovy 配置文件的位置。 |
如果您从 @ContextConfiguration
注释中省略 locations
和 value
属性,TestContext 框架会尝试检测默认 Groovy 脚本。具体而言,GenericGroovyXmlContextLoader
和 GenericGroovyXmlWebContextLoader
根据测试类的名称检测默认位置。如果您的类名为 com.example.MyTest
,Groovy 上下文加载器会从 "classpath:com/example/MyTestContext.groovy"
加载您的应用程序上下文。以下示例演示如何使用默认值
-
Java
-
Kotlin
@ExtendWith(SpringExtension.class)
// ApplicationContext will be loaded from
// "classpath:com/example/MyTestContext.groovy"
@ContextConfiguration (1)
class MyTest {
// class body...
}
1 | 从默认位置加载配置。 |
@ExtendWith(SpringExtension::class)
// ApplicationContext will be loaded from
// "classpath:com/example/MyTestContext.groovy"
@ContextConfiguration (1)
class MyTest {
// class body...
}
1 | 从默认位置加载配置。 |
同时声明 XML 配置和 Groovy 脚本
您可以使用 以下清单演示如何在集成测试中组合两者
|