IntelliJ で JUnit を試してみた
はじめに
単体テストは品質を確保し、バグを見つけるのに非常に重要です。
開発ツールとして、チームでは 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