Spring Boot 测试中 @Before 注解失效的原因及替代方案
在 Spring Boot 中,'@Before' 注解通常用于在测试方法执行之前进行一些操作,例如准备测试数据或初始化对象。然而,如果测试类使用了 ' @SpringBootTest' 注解,则需要使用 ' @PostConstruct' 注解来初始化对象,而不是 ' @Before' 注解。
这是因为 ' @SpringBootTest' 注解会自动创建 Spring 应用程序上下文并在测试之前启动 Spring 应用程序。这意味着在测试开始之前,Spring 应用程序上下文已经创建,所有 Bean 都已初始化。因此,在 ' @Before' 注解中执行的操作不会影响已经初始化的 Bean。
相反,' @PostConstruct' 注解会在 Bean 创建后立即执行,因此可以用于初始化对象。因此,在使用 ' @SpringBootTest' 注解的测试类中,应该使用 ' @PostConstruct' 注解来初始化对象,并在测试方法中使用 ' @Before' 注解执行其他操作。
原文地址: https://www.cveoy.top/t/topic/onH6 著作权归作者所有。请勿转载和采集!