对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

使用组件类进行上下文配置

要加载ApplicationContext对于使用组件类的测试(请参阅基于 Java 的容器配置),您可以注释测试 类与@ContextConfiguration并配置classes属性与数组 包含对组件类的引用。以下示例显示了如何执行此作:spring-doc.cadn.net.cn

@ExtendWith(SpringExtension.class)
// ApplicationContext will be loaded from AppConfig and TestConfig
@ContextConfiguration(classes = {AppConfig.class, TestConfig.class}) (1)
class MyTest {
	// class body...
}
1 指定组件类。
@ExtendWith(SpringExtension::class)
// ApplicationContext will be loaded from AppConfig and TestConfig
@ContextConfiguration(classes = [AppConfig::class, TestConfig::class]) (1)
class MyTest {
	// class body...
}
1 指定组件类。
组件类

术语“组件类”可以指以下任何一项:spring-doc.cadn.net.cn

请参阅@Configuration@Bean更多信息 关于组件类的配置和语义,要特别注意 到讨论@Bean精简模式。spring-doc.cadn.net.cn

如果您省略classes属性@ContextConfiguration注释,则 TestContext 框架尝试检测默认配置类的存在。 具体说来AnnotationConfigContextLoaderAnnotationConfigWebContextLoader全部检测static测试类的嵌套类,满足 配置类实现,如@Configurationjavadoc 的文档。 请注意,配置类的名称是任意的。此外,测试类可以 包含多个static嵌套配置类(如果需要)。在以下内容中 示例,OrderServiceTest类声明一个static嵌套配置类 叫Config自动用于加载ApplicationContext用于测试 类:spring-doc.cadn.net.cn

@SpringJUnitConfig (1)
// ApplicationContext will be loaded from the static nested Config class
class OrderServiceTest {

	@Configuration
	static class Config {

		// this bean will be injected into the OrderServiceTest class
		@Bean
		OrderService orderService() {
			OrderService orderService = new OrderServiceImpl();
			// set properties, etc.
			return orderService;
		}
	}

	@Autowired
	OrderService orderService;

	@Test
	void testOrderService() {
		// test the orderService
	}

}
1 从嵌套的Config类。
@SpringJUnitConfig (1)
// ApplicationContext will be loaded from the nested Config class
class OrderServiceTest {

	@Autowired
	lateinit var orderService: OrderService

	@Configuration
	class Config {

		// this bean will be injected into the OrderServiceTest class
		@Bean
		fun orderService(): OrderService {
			// set properties, etc.
			return OrderServiceImpl()
		}
	}

	@Test
	fun testOrderService() {
		// test the orderService
	}
}
1 从嵌套的Config类。