第6章 JUnit を使用した Quarkus アプリケーションのテスト
Quarkus Getting Started プロジェクトをコンパイルしたら、アプリケーションを JUnit 5 フレームワークでテストし、想定どおりに実行されることを確認します。Quarkus プロジェクトが生成した pom.xml ファイルには、テスト用の依存関係が 2 つあります。
quarkus-junit5 依存関係は、JUnit 5 テストフレームワークを制御する @QuarkusTest アノテーションを提供するため、テストに必要です。rest-assured 依存関係は必須ではありませんが、HTTP エンドポイントをテストする便利な方法を提供するため、統合されています。正しい URL を自動的に設定するので、何も設定する必要はありません。
これらのテストは REST-assured フレームワークを使用しますが、希望する場合は別のライブラリーを使用できます。
前提条件
- Quarkus Getting Started プロジェクトをコンパイルしていること。
手順
Surefire Maven プラグインのバージョンを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの Surefire Maven プラグインバージョンは、JUnit 5 をサポートしません。
-
java.util.loggingシステムプロパティーを設定して、テストが適切なログマネージャーを使用するようにします。 src/test/java/org/acme/quickstart/GreetingResourceTest.javaファイルを以下の内容に一致するように編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記QuarkusTestランナーを使用することで、テストを開始する前に JUnit にアプリケーションを起動するよう指示します。Maven からこれらのテストを実行するには、以下のコマンドを入力します。
./mvnw test
./mvnw testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記IDE からテストを実行することもできます。その場合は、最初にアプリケーションを停止してください。
デフォルトでは、テストはポート
8081で実行されるため、実行中のアプリケーションと競合しません。Quarkus では、RestAssured依存関係はこのポートを使用するように設定されています。別のクライアントを使用する場合は、@TestHTTPResourceアノテーションを使用して、テスト済みアプリケーションの URL をTestクラスのフィールドに直接インジェクトします。このフィールドには、タイプstring、URL、またはURIを使用できます。このアノテーションにテストパスを指定することもできます。たとえば、/myservletにマップされたサーブレットをテストするには、以下の行をテストに追加します。@TestHTTPResource("/myservlet") URL testUrl;@TestHTTPResource("/myservlet") URL testUrl;Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
必要な場合は、
quarkus.http.test-port設定プロパティーにテストポートを指定します。
Quarkus は、インジェクションを使用できない状況のベーステスト URL に設定される test.url という名前のシステムプロパティーも作成します。