次のように注釈が付けられた統合テストクラスがあります
@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 コンテキストをリロードしますか?