お金プログラム ~だれでもノマド~

ノマド的な稼ぎ方、投資、IT系(プログラミング)に関するブログです。

Javaで自動テストをする方法【Junitを使おう】

最近、いろいろとJavaのことを調べています。

今日は、Javaの自動テストについての記事です。

 

最近は、同じプログラムを使いまわすことが多いので、よく使うプログラムには、テストコードを準備して、テストを自動で行うのが主流です。

 

f:id:toyo--104:20181106233920p:plain

ルンバのように自動テスト

Javaで自動テストを行うなら「Junit」を使おう

Javaで自動テストをするには、「Junit」が有名です。これを使ってテストしてみましょう。

 

⇒「Junit公式ページ

 

導入方法がわからない人は、以下から試してみてください。

 

Junitの導入方法

Maven Repository」に、「Junit」と入れると、以下のような画面になります。

現在の最新版は、「Junit Jupiter API」ですね。これをクリック。

f:id:toyo--104:20181106234805p:plain

 

次の画面で、好きなバージョンをクリックしてください。

f:id:toyo--104:20181106235010p:plain

 

このページに、Mavenはじめ、各種取り方のコードが書いてあるので、それをエディタに貼れば、ダウンロードできますよ。

 

※貼り方、ダウンロード方法は、エディタにより異なります

f:id:toyo--104:20181107000259p:plain

 

サンプルコードを動かしてみる

それではサンプルコードを動かしてみましょう。

テスト対象のプログラムは、単純な足し算引き算のプログラムです。

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));
    }
}

実行してみると、こんな感じです。

f:id:toyo--104:20181107000650p:plain

 

はい、ただの足し算、引き算です。

 

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();
    }
}

 

動かしてみると、こんな感じです。なんにも出ません

つまり、テストが上手く行ったってことです。

f:id:toyo--104:20181107001017p:plain

 

逆に、assertEqualsのを変えてみると、

assertEquals(15, calc.plus(14,5));

以下のようにエラーになります。

f:id:toyo--104:20181107001604p:plain

 

これだと見辛いので、assertEqualsの第3引数に、失敗したときのメッセージを追記することができます。

assertEquals(14, calc.plus(10,5), "足し算の結果がおかしい");

 

そうすると、表示は以下のようになります。

f:id:toyo--104:20181107001737p:plain

 

ちょっとだけ分かりやすくなりましたね。

 

今日も自分の勉強をメモにしてみました。

テストコードツール「Junit」便利ですね。

みなさんもお試しあれ。