【Android Studio】Junitでテストを行う【日本語】

Android Studio(JAVA)でJUnitを使いテストをしてみた。

導入からテストまでを簡単に解説。

尚、Android Studioのバージョンは4.1を使用。

 

他のプログラミングに関する記事はこちら

スポンサーリンク


 

【前提】

新しくプロジェクトを作成した状態からスタートします。

Empty Activityテンプレートで、アプリNameはJunitTestとしています。

また、こちらの記事のほぼ写経です。

※こういった技術ブログをあげてくれる方には感謝しかありません。ありがとうございます。

 

【早速実装してみる】

1.「build.gradle」(Moduleの方)を開き、dependenciesに「testImplementation ‘junit:junit:4.+’」が設定されていることを確認します。

この記述により、gradleにJUnitが追加されます。

 

2.MainActivityがあるディレクトリにテスト用のクラスを作成します。

MainActivityクラスがあるディレクトリを右クリック>「New」>「Java Class」をクリックします。

 

3.クラス名は「Calculator」にします。

 

4.以下のような空のクラスが出来上がります。

package com.example.junittest;

public class Calculator {
}

 

5.手順4で作成した空のクラスを以下の通り更新します。

package com.example.junittest;

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

    public int substract(int a,int b){
        return 0;
    }
}

 

6.クラス名を右クリック>「Go To」>「Test」をクリックします。

 

7.「Create New Test」をクリックします。

 

8.Testing libraryを「JUnit4」、Generateの「setUp/@Before」をチェック、テストしたいメソッドにチェックをつけ、OKをクリックします。

※setUp/@Beforeにチェックをつけることで予め@Beforeが作られます

※@Beforeは@Testの前に行う処理を記載します(のちに出てくるコードを見たらなんとなくわかると思う)

 

9.テスト用のクラスの保存先を選択し「OK」をクリックします。

デフォルトでは「androidTest」とある方と「test」とある方の2つになると思いますが、基本「test」の方を選びます。

 

10.テスト用のクラス「CalculatorTest」が自動で生成されます。

 

11.テスト用のクラスを以下の通り更新します。

package com.example.junittest;

import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.*;

public class CalculatorTest {

    private Calculator mCalculator;

    @Before
    public void setUp() throws Exception {
        mCalculator = new Calculator();
    }

    @Test
    public void testSum() throws Exception {
        //予想:1 + 5 で 6が返ってくるはず
        assertEquals(6, mCalculator.sum(1, 5), 0);
    }

    @Test
    public void testSubstract() throws Exception {
        assertEquals(2, mCalculator.substract(5, 3), 0);
    }
}

 

【Tips】

今回テストで使う今回「assertEquals」は、第1引数に期待される結果、第2引数にテストする内容、第3引数に許容する誤差を指定して使用します。

詳しくは以下URLをご参照ください。

https://www.techscore.com/tech/Java/Others/JUnit/2-2/

 

12.画面上部にある「Run」>「Run」をクリックします。

 

13.「CalculatorTest」をクリックします。

 

14.結果がログに出力されます。

ログを見ると、CalculatorTestの25行目……つまりsubstractのテストでエラーがあったことがわかります。

substractメソッドに5と3を渡したときには2が返ってくるはずなのに、返ってきていないということです。

 

15.該当の「Calculator」クラスのsubstractメソッドを見て見ます。

引数に関係なく0を返すメソッドになっています。それがエラーの原因です。

package com.example.junittest;

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

    public int substract(int a,int b){
        return 0;
    }
}

 

16.以下の通り、returnをa – bを返すように更新します。

package com.example.junittest;

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

    public int substract(int a,int b){
        return a - b;
    }
}

 

17.再度テスト用クラスをRunすると、正常に終わったことがわかります。

 

他のプログラミングに関する記事はこちら

スポンサーリンク