検索

1.7. Quarkus アプリケーションのテスト

download PDF

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 フレームワークを使用しますが、希望する場合は別のライブラリーを使用できます。

前提条件

手順

  1. 生成された 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 ファイルの場所を参照します。
  2. 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 にアプリケーションを起動するよう指示します。

  3. Maven からこれらのテストを実行するには、以下のコマンドを入力します。

    ./mvnw test
    注記

    IDE からテストを実行することもできます。その場合は、まずアプリケーションを停止してください。

    デフォルトでは、テストはポート 8081 で実行されるため、実行中のアプリケーションと競合しません。Quarkus では、RestAssured 依存関係はこのポートを使用するように設定されています。

    注記

    別のクライアントを使用する場合は、@TestHTTPResource アノテーションを使用して、テスト済みアプリケーションの URL を Test クラスのフィールドに直接注入します。このフィールドには、StringURL、または URI の型を使用できます。@TestHTTPResource アノテーションにテストパスを入力することもできます。たとえば、/myservlet にマップされたサーブレットをテストするには、以下の行をテストに追加します。

    @TestHTTPResource("/myservlet")
    URL testUrl;
  4. 必要な場合は、quarkus.http.test-port 設定プロパティーにテストポートを指定します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.