😊

IntelliJ で JUnit を試してみた

2024/04/01に公開

はじめに

単体テストは品質を確保し、バグを見つけるのに非常に重要です。

開発ツールとして、チームでは IntelliJ を使用していているので、せっかくなので IntelliJ を使用して JUnit を試してみました😀

導入しようと考えた理由

下記の理由から、導入すべきと考えました。

  • コードの動作(境界・例外・その他)に自信が持てない状態が続いている
  • デグレ起因のバグ報告などが出ている
  • 単体テストを書く文化が確立されていない

最終的なクラス構成

junit-sample
├── junit-sample.iml
├── lib
│   ├── apiguardian-api-1.1.2.jar
│   ├── junit-jupiter-5.8.1.jar
│   ├── junit-jupiter-api-5.8.1.jar
│   ├── junit-jupiter-engine-5.8.1.jar
│   ├── junit-jupiter-params-5.8.1.jar
│   ├── junit-platform-commons-1.8.1.jar
│   ├── junit-platform-engine-1.8.1.jar
│   └── opentest4j-1.2.0.jar
├── src
│   └── Calculator.java
└── test
    └── CalculatorTest.java

テストをしたいクラスを作成

今回は下記の足し算と引き算をするメソッドを持つ、Calculator クラスに対して JUnit Test を行います。

public class Calculator {
    int add(int a, int b) {
        return a + b;
    }

    int subtract(int a, int b) {
        return a - b;
    }
}

テスト用のディレクトリを作成

作業中のプロジェクトを選択し、新規->ディレクトリを押下します。
今回は test という名前のディレクトリにします。

作成したディレクトリをテストソースのルートに設定します。
ディレクトリをマーク->テストソース ルート

テスト用ディレクトリの色が緑色に変わります。

テストクラスを作成

テストしたいクラスにカーソルを置いた状態でオレンジの電球マークを選択し、テストの作成を押下後、テストメソッドで、add と subtract を選択(今回は JUnit 5 を使用しています)

これで下記のようなテストクラスが生成されます😀

テストを実行するために、下記のようにメソッドを実装しておきます

import static org.junit.jupiter.api.Assertions.*;

class CalculatorTest {

    @org.junit.jupiter.api.Test
    void add() {
        Calculator calculator = new Calculator();
        assertEquals(5, calculator.add(2, 3));
    }

    @org.junit.jupiter.api.Test
    void subtract() {
        Calculator calculator = new Calculator();
        assertEquals(2, calculator.subtract(5, 3));
    }
}

assertEquals(期待される結果 , クラス.関数) のように記述します.
上記では、calculator.add() の返り値として5、calculator.subtractの返り値として2を期待してることになります。

テストを実行

テストしたいクラスにカーソルを置いた状態で、'CalculatorTest' の実行を押下します。

テストが全て成功すると、下記のように出力されます🙌

ちなみに失敗すると、下記のように出力されます。

まとめ

IntelliJ と Junit を使用すると Java の単体テストを簡単に作成して実行することができました。
今回の体験を元に、チームで管理しているコードにも、単体テストコードを書いていき、コードの品質を高めていきたいです。

レスキューナウテックブログ

Discussion