第6章 JUnit を使用した Quarkus アプリケーションのテスト


Quarkus Getting Started プロジェクトをコンパイルしたら、アプリケーションを JUnit 5 フレームワークでテストし、想定どおりに実行されることを確認します。Quarkus プロジェクトが生成した pom.xml ファイルには、テスト用の依存関係が 2 つあります。

<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>
Copy to Clipboard Toggle word wrap

quarkus-junit5 依存関係は、JUnit 5 テストフレームワークを制御する @QuarkusTest アノテーションを提供するため、テストに必要です。rest-assured 依存関係は必須ではありませんが、HTTP エンドポイントをテストする便利な方法を提供するため、統合されています。正しい URL を自動的に設定するので、何も設定する必要はありません。

注記

これらのテストは REST-assured フレームワークを使用しますが、希望する場合は別のライブラリーを使用できます。

前提条件

  • Quarkus Getting Started プロジェクトをコンパイルしていること。

手順

  1. Surefire Maven プラグインのバージョンを設定します。

    <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
           <systemProperties>
             <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
           </systemProperties>
        </configuration>
    </plugin>
    Copy to Clipboard Toggle word wrap

    デフォルトの Surefire Maven プラグインバージョンは、JUnit 5 をサポートしません。

  2. java.util.logging システムプロパティーを設定して、テストが適切なログマネージャーを使用するようにします。
  3. 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));
        }
    
    }
    Copy to Clipboard Toggle word wrap
    注記

    QuarkusTest ランナーを使用することで、テストを開始する前に JUnit にアプリケーションを起動するよう指示します。

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

    ./mvnw test
    Copy to Clipboard Toggle word wrap
    注記

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

    デフォルトでは、テストはポート 8081 で実行されるため、実行中のアプリケーションと競合しません。Quarkus では、RestAssured 依存関係はこのポートを使用するように設定されています。別のクライアントを使用する場合は、@TestHTTPResource アノテーションを使用して、テスト済みアプリケーションの URL を Test クラスのフィールドに直接インジェクトします。このフィールドには、タイプ stringURL、または URI を使用できます。このアノテーションにテストパスを指定することもできます。たとえば、/myservlet にマップされたサーブレットをテストするには、以下の行をテストに追加します。

    @TestHTTPResource("/myservlet")
    URL testUrl;
    Copy to Clipboard Toggle word wrap
  5. 必要な場合は、quarkus.http.test-port 設定プロパティーにテストポートを指定します。
注記

Quarkus は、インジェクションを使用できない状況のベーステスト URL に設定される test.url という名前のシステムプロパティーも作成します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat