我有標註爲一個集成測試類遵循Spring:爲什麼在每個測試課結束時不會調用@PreDestroy?
@WebAppConfiguration
@ContextConfiguration(classes = {AppConfiguration.class})
@RunWith(SpringJUnit4ClassRunner.class)
public class CacheConsumerTest {
}
這裏是我的AppConfiguration
@Configuration
@ComponentScan(basePackages = {"com.etc.etc.etc."})
@EnableWebMvc
public class AppConfiguration {
}
出於某種原因,沒有我@Component
豆@PreDestroy
獲取調用在所有測試中CacheConsumerTest
末。然而,在開始運行任何測試之前,都會調用@PostConstruct
。
任何人都知道問題可能是什麼?我的一些@Component
是我希望關閉的後臺線程(通過調用其@Predestroy),否則他們在後臺執行的工作將導致其他測試類中的後續測試失敗。
我試過添加@DirtiesContext(classMode=ClassMode.AFTER_CLASS)
但它沒有幫助。
編輯:想通了這個問題,我必須做一個額外的步驟,使DirtiesContext工作: Does Spring @DirtiesContext reload Spring context?