【Java】テストツール JUnit の紹介

  • 2021年12月10日
  • Java

 Java は動作のためにコンパイルが必要な言語です。開発中のテストの度に毎度毎度プログラム全体をコンパイルして手でテストして、とやっているとひどく時間を食います(少なくとも Java で web サイトを開発する際の手作業テストは、同じく web サイトを開発する際の PHP + JavaScript の手作業テストより遥かに時間を食いました。Java 自体というよりもサーバーとの兼ね合いで時間がかかった様な印象)。JUnit は単体テストを行うためのツールであり、これにテストが必要な範囲だけを処理してもらうことで快適に開発できます。
junit-team/junit5: ✅ The 5th major version of the programmer-friendly testing framework for Java and the JVM
Maven Repository: org.junit.jupiter » junit-jupiter-api
 単純な実装としては次の様にテスト内容のメソッドに@Testのアノテーションをつけ、テスト内容のメソッドの中にテスト内容を書くだけです。

// HogeControllerTest.java
import org.junit.jupiter.api.Test;

class HogeControllerTest {
    // テスト対象クラスのインスタンス
    private final HogeController controller = new HogeController();

    // アノテーションでテストメソッドであることを示す。
    @Test
    void indexOK() {
        // 例外が吐かれない === レスポンス 200 相当であることを確かめる
        controller.index();
    }
}

 例のテストはとあるURLにアクセスした際のコントローラの index メソッドが正常に動作するか、の様なテストです。何がしか要件なり仕様なりに沿ったアサートがあるとなお良いですし、リクエストのモックが必要な場合も多いですが、とりあえずこれだけでも適当にパラメータ抜きでアクセスされた際に異常な挙動が起きるコードであるか否かを確かめられます。

 JUnit は IDE を使うと楽に動作させられます。Eclipse ならば次図の様に右クリック->実行->JUnitテスト、あるいはAlt + Shift + X を押して開けるポップアップから Tで実行の様にできます。

 IntelliJ IDEA ならば再生マークや Ctrl + Shift + F10です。

 JUnit をコンソール代わりにして開発を行うとトライアンドエラーをサクサクでき、開発時のテスト内容も保存しておけるので大変便利です。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG