1.7. Quarkus アプリケーションのテスト
Quarkus Getting Started プロジェクトをコンパイルした後、JUnit 5 フレームワークを使用してアプリケーションをテストすることで、それが期待通りに実行するか確認できます。
Quarkus アプリケーションの継続的なテストを有効にすることもできます。詳細は、継続的なテストの有効化と実行 を参照してください。
Quarkus プロジェクトは、pom.xml
ファイルに次の 2 つのテスト依存関係を生成します。
-
quarkus-junit5
: JUnit 5 テストフレームワークを制御する@QuarkusTest
アノテーションを提供するため、テストに必要です。 -
rest-assured
:rest-assured
依存関係は必須ではありませんが、HTTP エンドポイントをテストする便利な方法として使用できるため、統合されています。rest-assured
依存関係により正しい URL が自動的に設定されるため、設定は必要ありません。
サンプル pom.xml
ファイル:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-junit5</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <scope>test</scope> </dependency>
これらのテストは REST-assured フレームワークを使用しますが、希望する場合は別のライブラリーを使用できます。
前提条件
- Quarkus Getting Started プロジェクトをコンパイルしている。詳細は、Quarkus Getting Started プロジェクトのコンパイルおよび起動 を 参照してください。
手順
生成された
pom.xml
ファイルを開き、コンテンツを確認します。<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire-plugin.version}</version> <configuration> <systemPropertyVariables> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> <maven.home>${maven.home}</maven.home> </systemPropertyVariable> </configuration> </plugin>
次のプロパティーの値に注意してください。
-
アプリケーションがテストで必ず正しいログマネージャーを使用するように、
java.util.logging.manager
システムプロパティーが設定されます。 -
maven.home
プロパティーは、プロジェクトに適用するカスタム Maven 設定を保存できるsettings.xml
ファイルの場所を参照します。
-
アプリケーションがテストで必ず正しいログマネージャーを使用するように、
src/test/java/org/acme/quickstart/GreetingResourceTest.java
ファイルを以下の内容に一致するように編集します。package org.acme.quickstart; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; import java.util.UUID; import static io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.is; @QuarkusTest public class GreetingResourceTest { @Test public void testHelloEndpoint() { given() .when().get("/hello") .then() .statusCode(200) .body(is("hello")); } @Test public void testGreetingEndpoint() { String uuid = UUID.randomUUID().toString(); given() .pathParam("name", uuid) .when().get("/hello/greeting/{name}") .then() .statusCode(200) .body(is("hello " + uuid)); } }
注記QuarkusTest
ランナーを使用することで、テストを開始する前に JUnit にアプリケーションを起動するよう指示します。Maven からこれらのテストを実行するには、以下のコマンドを入力します。
./mvnw test
注記IDE からテストを実行することもできます。その場合は、まずアプリケーションを停止してください。
デフォルトでは、テストはポート
8081
で実行されるため、実行中のアプリケーションと競合しません。Quarkus では、RestAssured
依存関係はこのポートを使用するように設定されています。注記別のクライアントを使用する場合は、
@TestHTTPResource
アノテーションを使用して、テスト済みアプリケーションの URL をTest
クラスのフィールドに直接注入します。このフィールドには、String
、URL
、またはURI
の型を使用できます。@TestHTTPResource
アノテーションにテストパスを入力することもできます。たとえば、/myservlet
にマップされたサーブレットをテストするには、以下の行をテストに追加します。@TestHTTPResource("/myservlet") URL testUrl;
-
必要な場合は、
quarkus.http.test-port
設定プロパティーにテストポートを指定します。