このセクションの内容
単体テスト アシスタントを使用すると、次のような Spring コンポーネントに対して JUnit テストを作成および実行できます: @Controller、@RestController、@Component、@Repository および @Service 。UTA はコードを解析し、サンプル アサーションと初期値を含む実行可能なテスト テンプレートを生成し、設定します。Spring コンポーネントのテストを追加する場合、以下の選択肢があります。
Spring フレームワーク テストを作成する場合、ビルド システムで spring-test
への依存関係が設定されていることを確認します。「必要なライブラリを含めるためのビルド システムの設定」を参照してください。
UTA は autowired フィールド、セッターメソッド、コンストラクター引き数による Spring の依存性注入をサポートします。UTA は Spring に必要な依存性の bean を提供するインナー構成クラスを作成します。モックが有効な場合 (「設定の構成」を参照)、すべての依存関係がモック化された bean として追加されます。
Spring MVC コントローラーのハンドラー メソッドのテスト
@Controller および @RestController のハンドラー メソッドのテストは、MockMvc を使用して構成されます。 UTA はリクエスト ボディ、レスポンス ボディ、レスポンス MIME タイプ、HTTP メソッド、パス パラメーター、クエリー パラメーター、HTTP ヘッダー、セッション属性の設定を認識し、設定することができます。
Spring Boot プロジェクトでテストを作成する場合、内部コンフィギュレーション クラスは追加されません。 |
Spring テストを作成するには、次の操作を行います。
生成されたテストには、サンプル アサーション テンプレートとデフォルトの UTA 値が含まれています。テストを表示してサンプル アサーションのコメントを解除し、値を変更します。
UTA によって作成された Spring テストには任意パラメーターは含まれていません。たとえば、次のパラメーターは含まれません。 |
UTA は private メソッドの通常またはパラメータライズド Spring テストを作成し、コードのカバレッジを上げることができます。
デフォルトでは、[private メソッドのテストを作成] オプションはオフです。業界のベスト プラクティスでは、private メソッドを直接テストするのではなく、private メソッドを呼び出すアクセス可能なメソッドのテストを作成することで private メソッドをテストするよう推奨されています。 |
Spring 単体テストは、必要な依存ライブラリを提供するために、テスト実行時に Bean を必要とします。デフォルトでは、UTA は必要な Bean メソッドを持つ内部コンフィギュレーション クラスを作成して値を設定することで、テスト ケース内に直接利用可能な Bean を定義します。注意: Spring Boot プロジェクトでテストを作成する場合は、Spring Boot が自動的に依存関係をスキャンできるため、コンフィギュレーション クラスは作成されません)
あるいは、 @ContextConfiguration アノテーションを使用して XML コンフィギュレーション ファイルまたは別個の Java コンフィギュレーション クラスへの参照をテストに設定することもできます。
[デフォルトの ContextConfiguration 属性] フィールドに以下のいずれかを入力します。
- 1 つまたは複数の XML コンフィギュレーション ファイルへの参照。コンフィギュレーション属性は次のようになります。
locations={"classpath:/**/FirstContext.xml", "classpath:/**/SecondContext.xml"} |
- 1 つまたは複数の独立した Java コンフィギュレーション クラスへの参照。コンフィギュレーション属性は次のようになります。
classes={FirstConfigClass.class, SecondConfigClass.class} |
次のように [デフォルトの ContextConfiguration 属性] オプションに 2 つのコンフィギュレーション ファイルへの参照を指定できます。
生成された Spring 単体テストには属性が設定された ContextConfiguration アノテーションが追加されます。
ContextConfiguration アノテーションの詳細については、Spring のドキュメント https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html を参照してください。