このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring Framework 7.0.10 を使用してください! |
デフォルトのコンテキスト構成
コンポーネントクラス、XML リソース、Groovy スクリプトのセクションに従って、テストの ApplicationContext をロードする @Configuration クラス、XML 構成ファイル、または Groovy スクリプトを明示的に指定しない場合、TestContext フレームワークはデフォルトのコンテキスト構成を検索しようとします。
Spring Framework 7.1 以降、TestContext フレームワークは、特定のテストクラスの上位にある型階層または囲んでいるクラス階層(@Nested テストクラスの場合)内のすべてのデフォルトコンテキスト構成を確実に検出します。たとえそれらの階層内で @ContextConfiguration が宣言されていなくても検出可能です。
Spring Framework 7.1 より前は、検出アルゴリズムのバグにより、型階層または囲みクラス階層で @ContextConfiguration が宣言されていない場合、スーパークラスまたは囲みクラスのデフォルトのコンテキスト構成が無視されていました。そのため、7.1 へのアップグレード後にテストスイートで問題が発生する可能性があります。例: 以前は無視されていたスーパークラスまたは囲みクラス内の静的ネストされた @Configuration クラスが処理されるようになり、結果として生成される ApplicationContext に予期しない Bean が生成されたり、テストが完全に失敗したりする可能性があります。
To help you identify affected tests before upgrading, Spring Framework 7.0.6 and later 7.0.x versions log a warning whenever they encounter default context configuration that is ignored — for example, a @Configuration class or XML configuration file. The remainder of this section provides guidance on how to address such issues.
影響を受けるサブクラスまたは |
静的にネストされた @Configuration クラスを処理したくない場合は、次のことができます。
@Configuration宣言を削除してください。@ContextConfigurationは、実際にそのようなクラスを処理したい場合にのみ適用してください。静的にネストされた
@Configurationクラスを独立したトップレベルクラスに移動して、誤ってデフォルト設定クラスとして解釈されないようにしてください。
同様に、デフォルトの XML 設定ファイルや Groovy スクリプトが検出され、処理したくない場合は、以下の手順を実行できます。
@ContextConfigurationは、実際にそのようなリソースを処理したい場合にのみ適用してください。リソースファイルの名前を、デフォルトの命名規則(XML 設定の場合は
*-context.xmlなど)と一致しないものに変更してください。そうすることで、誤ってデフォルトの設定ファイルとして解釈されることを防ぐことができます。影響を受けるリソースファイルを、プロジェクト内の別のパッケージまたはファイルシステム上の場所に移動してください。