我有一个集成测试类,注释如下
@WebAppConfiguration
@ContextConfiguration(classes = {AppConfiguration.class})
@RunWith(SpringJUnit4ClassRunner.class)
public class CacheConsumerTest {
}
这是我的 AppConfiguration
@Configuration
@ComponentScan(basePackages = {"com.etc.etc.etc."})
@EnableWebMvc
public class AppConfiguration {
}
出于某种原因,在所有测试结束时,我的@Component
bean都没有被调用。然而,在运行任何测试之前,它在开始时被调用。@PreDestroy
CacheConsumerTest
@PostConstruct
任何人都知道问题可能是什么?我的一些是@Component
我想关闭的后台线程(通过调用它的@Predestroy),否则他们在后台所做的工作将导致其他测试类中的后续测试失败。
我试过添加@DirtiesContext(classMode=ClassMode.AFTER_CLASS)
,但没有帮助。
编辑:找出问题所在,我必须做一个额外的步骤才能使 DirtiesContext 工作: Spring @DirtiesContext 是否重新加载 Spring 上下文?