4

私の問題は、いくつかのテストが失敗したことです。関数がコンテキストを破壊し、そのためにテストが失敗したと思います。

Spring は、すべてのテストまたはすべてのテスト クラスに対して新しいコンテキストをロードしましたか、それともテスト ランに対して 1 回だけロードしましたか?

4

1 に答える 1

7

設定変更なしですぐに使えるように、Spring はテスト スイートごとに 1 回だけコンテキストをロードする必要があります。

デフォルトでは、ロードされると、設定された ApplicationContext が各テストで再利用されます。したがって、セットアップ コストはテスト スイートごとに 1 回だけ発生し、その後のテスト実行ははるかに高速になります。このコンテキストでは、テスト スイートという用語は、同じ JVM で実行されるすべてのテストを意味します。たとえば、特定のプロジェクトまたはモジュールの Ant、Maven、または Gradle ビルドから実行されるすべてのテストです。めったにないケースですが、テストによってアプリケーション コンテキストが破損し、リロードが必要になる場合 (たとえば、Bean 定義またはアプリケーション オブジェクトの状態を変更することによって) は、TestContext フレームワークを構成して、構成をリロードし、アプリケーション コンテキストを再構築してから次のコマンドを実行することができます。テスト。

ソース: http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/testing.html#testcontext-ctx-management

于 2013-02-14T10:18:45.667 に答える