最近、いろいろとJavaのことを調べています。
今日は、Javaの自動テストについての記事です。
同じプログラムを使いまわすことが多いので、よく使うプログラムには、テストコードを準備して、テストを自動で行うのが主流です。
Javaで自動テストを行うなら「Junit」を使おう
Javaで自動テストをするには、「Junit」が有名です。これを使ってテストしてみましょう。
⇒「Junit公式ページ」
導入方法がわからない人は、以下から試してみてください。
Junitの導入方法
「Maven Repository」に、「Junit」と入れると、以下のような画面になります。
現在の最新版は、「Junit Jupiter API」ですね。これをクリック。
次の画面で、好きなバージョンをクリックしてください。
このページに、Mavenはじめ、各種取り方のコードが書いてあるので、それをエディタに貼れば、ダウンロードできますよ。
※貼り方、ダウンロード方法は、エディタにより異なります
サンプルコードを動かしてみる
それではサンプルコードを動かしてみましょう。
テスト対象のプログラムは、単純な足し算引き算のプログラムです。
Caliculator.java
class Caliculater { /** * 足し算の結果を返す * @param x * @param y * @return */ public int plus(int x, int y){ return x + y; } /** * 引き算の結果を返す * @param x * @param y * @return */ public int minus(int x, int y){ return x - y; } public static void main(String[] args){ int x = 10; int y = 5; // 自分自身をインスタンス化 Caliculater cal = new Caliculater(); // 足し算の結果を出力 → 15 System.out.println("plus : " + cal.plus(x, y)); // 引き算の結果を出力 → 5 System.out.println("minus : " + cal.minus(x, y)); } }
実行してみると、こんな感じです。
はい、ただの足し算、引き算です。
CaliculatorTest.java
いよいよ本題、テストコードです。
ポイントとしては、冒頭でjunitをインポートしていること。
そして、assertEqualsメソッドで、予想通りの結果になっているかをチェックしています。
import static org.junit.jupiter.api.Assertions.assertEquals; class CaliculaterTest { // Caliculator をインスタンス化 Caliculater calc = new Caliculater(); /** * 実際にテストを行うメソッド */ public void testCaliculater(){ // 足し算の結果を確認、左が期待値、右が実際の結果 assertEquals(15, calc.plus(10,5)); // 引き算の結果を確認、左が期待値、右が実際の結果 assertEquals(5, calc.minus(10,5)); } public static void main(String[] args){ // 自分自身をインスタンス化 CaliculaterTest ct = new CaliculaterTest(); ct.testCaliculater(); } }
動かしてみると、こんな感じです。なんにも出ません。
つまり、テストが上手く行ったってことです。
逆に、assertEqualsのを変えてみると、
assertEquals(15, calc.plus(14,5));
以下のようにエラーになります。
これだと見辛いので、assertEqualsの第3引数に、失敗したときのメッセージを追記することができます。
ちょっとだけ分かりやすくなりましたね。
今日も自分の勉強をメモにしてみました。
テストコードツール「Junit」便利ですね。
みなさんもお試しあれ。