@ContextHierarchy

@ContextHierarchy 是一种可以应用于测试类以定义用于集成测试的 ApplicationContext 实例层次结构的注解。@ContextHierarchy 应使用一个或多个 @ContextConfiguration 实例的列表进行声明,它们各自定义了上下文层次结构中的一个级别。以下示例演示了在一个测试类中使用 @ContextHierarchy@ContextHierarchy 也可以在测试类层次结构中使用):

  • Java

  • Kotlin

@ContextHierarchy({
	@ContextConfiguration("/parent-config.xml"),
	@ContextConfiguration("/child-config.xml")
})
class ContextHierarchyTests {
	// class body...
}
@ContextHierarchy(
	ContextConfiguration("/parent-config.xml"),
	ContextConfiguration("/child-config.xml"))
class ContextHierarchyTests {
	// class body...
}
  • Java

  • Kotlin

@WebAppConfiguration
@ContextHierarchy({
	@ContextConfiguration(classes = AppConfig.class),
	@ContextConfiguration(classes = WebConfig.class)
})
class WebIntegrationTests {
	// class body...
}
@WebAppConfiguration
@ContextHierarchy(
		ContextConfiguration(classes = [AppConfig::class]),
		ContextConfiguration(classes = [WebConfig::class]))
class WebIntegrationTests {
	// class body...
}

如果需要合并或覆盖测试类层次结构内给定级别上下文层次结构的配置,必须通过为特定类层次结构中的每个对应层级的 @ContextConfiguration 中的 name 属性提供相同的值,明确命名该层级。有关其他示例,请参见 Context Hierarchies 和https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/context/ContextHierarchy.html[@ContextHierarchy] javadoc。