カテゴリ: Quarkus 更新日: 2026/03/17

QuarkusとMockitoでモックテストを実行する方法を完全解説!初心者でもわかるQuarkusテスト入門

QuarkusとMockitoでモックテストを実行
QuarkusとMockitoでモックテストを実行

先生と生徒の会話形式で理解しよう

生徒

「Quarkusでテストを書こうとしたら、データベースに接続しないといけなくなって困っています…」

先生

「その場合は、Mockitoを使ってモックテストを行うと、外部依存を切り離してテストできますよ。」

生徒

「QuarkusでもMockitoって使えるんですか?Springだけのものかと思っていました。」

先生

「Quarkus専用の仕組みと組み合わせることで、JUnitとMockitoを使ったテストが簡単に書けます。順番に見ていきましょう。」

1. Quarkusテストとは何かを理解しよう

1. Quarkusテストとは何かを理解しよう
1. Quarkusテストとは何かを理解しよう

Quarkusテストは、Javaで開発したQuarkusアプリケーションを安全に検証するための仕組みです。Quarkusでは、JUnitをベースにしたテスト環境が標準で用意されており、アプリケーションを起動した状態に近い形でテストを実行できます。これにより、REST APIの動作確認やビジネスロジックの検証を効率よく行えます。

初心者の方が最初につまずきやすいのは、テスト中にデータベースや外部APIに接続してしまう点です。そこで重要になるのが、モックテストという考え方です。QuarkusテストとMockitoを組み合わせることで、外部依存を排除した安定したテストが可能になります。

2. Mockitoを使ったモックテストの基本概念

2. Mockitoを使ったモックテストの基本概念
2. Mockitoを使ったモックテストの基本概念

Mockitoは、Javaで広く使われているモックフレームワークです。モックとは、本物のクラスの代わりに使う疑似的なオブジェクトのことです。Mockitoを使うと、特定のメソッドが呼ばれたときに、決まった値を返すように設定できます。

QuarkusとMockitoを組み合わせることで、サービスクラスやリポジトリクラスをモックに差し替え、テスト対象のロジックだけに集中できます。これにより、テストの実行速度が速くなり、テスト結果も安定します。Quarkus Mockito テスト、Java モックテスト、JUnit Mockito などのキーワードで検索される理由もここにあります。

3. Quarkusプロジェクトにテスト環境を用意する

3. Quarkusプロジェクトにテスト環境を用意する
3. Quarkusプロジェクトにテスト環境を用意する

Quarkusプロジェクトを作成すると、最初からテストに必要な依存関係が含まれている場合が多いです。JUnitとMockitoを利用したQuarkusテストは、特別な設定をしなくてもすぐに始められます。

テストクラスは、src/test/java 配下に作成します。Quarkusでは、テストクラスに専用のアノテーションを付けることで、アプリケーションをテスト用に起動してくれます。これがQuarkusテストの大きな特徴です。

4. シンプルなサービスクラスを用意する

4. シンプルなサービスクラスを用意する
4. シンプルなサービスクラスを用意する

まずは、テスト対象となるシンプルなサービスクラスを作成します。ここでは、メッセージを返すだけのクラスを例にします。初心者の方でも読みやすいように、処理は最小限にしています。


package com.example.service;

public class GreetingService {

    public String greet(String name) {
        return "Hello " + name;
    }
}

5. Mockitoで依存クラスをモック化する

5. Mockitoで依存クラスをモック化する
5. Mockitoで依存クラスをモック化する

次に、Mockitoを使ってモックを定義したテストクラスを作成します。Quarkusでは、テストクラスにアノテーションを付けることで、Mockitoのモックを簡単に注入できます。これにより、本物のクラスを使わずにテストが実行されます。


package com.example;

import com.example.service.GreetingService;
import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

@QuarkusTest
public class GreetingServiceTest {

    @Test
    public void testGreeting() {
        GreetingService service = new GreetingService();
        String result = service.greet("Quarkus");
        assertEquals("Hello Quarkus", result);
    }
}

このテストでは、Quarkusテスト環境が起動し、JUnitを使ってメソッドの戻り値を検証しています。まずは、このような基本形を理解することが大切です。

6. リポジトリをモックしてビジネスロジックを検証する

6. リポジトリをモックしてビジネスロジックを検証する
6. リポジトリをモックしてビジネスロジックを検証する

実際の開発では、サービスクラスがリポジトリや外部サービスに依存することがほとんどです。ここでは、リポジトリをMockitoでモック化し、ビジネスロジックだけをテストする例を紹介します。


package com.example.repository;

public class UserRepository {

    public String findUserName() {
        return "DefaultUser";
    }
}

package com.example.service;

import com.example.repository.UserRepository;

public class UserService {

    private final UserRepository repository;

    public UserService(UserRepository repository) {
        this.repository = repository;
    }

    public String getUser() {
        return repository.findUserName();
    }
}

7. Mockitoを使ったQuarkusテストの実装例

7. Mockitoを使ったQuarkusテストの実装例
7. Mockitoを使ったQuarkusテストの実装例

最後に、UserRepositoryをモック化したQuarkusテストを作成します。Mockitoで戻り値を指定することで、テスト用のデータを自由に制御できます。Quarkus Mockito モック注入、Quarkus JUnit テスト、Java テスト 初心者 といった検索キーワードで調べる方にも役立つ内容です。


package com.example;

import com.example.repository.UserRepository;
import com.example.service.UserService;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.mockito.InjectMock;
import org.junit.jupiter.api.Test;
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;

@QuarkusTest
public class UserServiceTest {

    @InjectMock
    UserRepository repository;

    @Test
    public void testUserService() {
        when(repository.findUserName()).thenReturn("MockUser");

        UserService service = new UserService(repository);
        String result = service.getUser();

        assertEquals("MockUser", result);
    }
}

このように、QuarkusとMockitoを組み合わせることで、外部依存を切り離したモックテストが簡単に実装できます。初心者の方は、まず小さなクラスからテストを書き、徐々に範囲を広げていくと理解しやすくなります。

カテゴリの一覧へ
新着記事
New1
Micronaut
Micronautの@Factoryとは?複雑なBean生成を管理するための方法を解説
New2
Quarkus
QuarkusのDIとCDIを完全理解!@Producesでプロデューサーメソッドを使う方法を初心者向けに解説
New3
Java
JavaのStringBufferクラスを徹底解説!スレッド安全な文字列操作の仕組みと使い分け
New4
Micronaut
Micronautで非同期HTTP処理を行う方法!リアクティブ対応の基礎知識
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkus入門!GitHub ActionsでCI/CDパイプラインを構築して自動ビルドを実現する方法
No.2
Java&Spring記事人気No2
Java
Javaのコンパイルと実行の流れを解説!JVM・JDK・JREの違いも初心者向けに整理
No.3
Java&Spring記事人気No3
Micronaut
Micronautのルーティング設定ガイド!プレフィックス付与とAPIバージョニングの基本
No.4
Java&Spring記事人気No4
Quarkus
QuarkusのCI/CD入門!GitHub Actionsで自動デプロイを実現する方法
No.5
Java&Spring記事人気No5
Micronaut
Micronautのフィルタ徹底解説!HTTPリクエスト共通処理をスマートに追加する方法
No.6
Java&Spring記事人気No6
Java
Java Optional ifPresentの使い方を徹底解説!nullチェックをスマートに省略する方法
No.7
Java&Spring記事人気No7
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.8
Java&Spring記事人気No8
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?