10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Android StudioでのJUnitテストのやり方

Last updated at Posted at 2021-12-17

#はじめに
Javaのテストと言えば、JUnit。それをAndroid Studioで行う方法を紹介します。
#手順
以下のようなSampleActivity.javaがあるとします。

SampleActivity.java
package com.websarva.wings.android.junitsample1;

public class SampleActivity {

    private int id;
    private String name;

    public SampleActivity(int id,String name){
        this.id = id;
        this.name = name;
    }

    //IDと名前を紹介
    public String explain(){
        String explain;
        explain = "id:"+id+",name:"+name;
        return explain;
    }

    //IDを取得
    public int getId() {
        return id;
    }

    //名前を取得
    public String getName() {
        return name;
    }
}

これをテストしてみましょう!

手順①テストしたいメソッドの上でCtrl+Shift+T キー(⇧⌘T)を押す
テストしたいメソッドの上でCtrl+Shift+T キー(⇧⌘T)を押すと、**「Create New Test」**が表示されます。これをクリックします。
コントロールシフトT.png

手順②チェックを入れる
手順①を終えると、このような画面が表示されます。
Testing libraryはJUnit4にしましょう。
そして、GenerateのsetUpにチェックを入れます。
下のMemberはメソッドの一覧です。今回は全てのメソッドをテストしたいので、全てにチェックを入れOKを押します。
チェック画面.png

すると以下のようにディレクトリを指定する画面が出てきます。デフォルトのままでOKを押します。
choosedes.png

手順③テストメソッドを埋める
手順②を終えると、SampleActivityTest.javaが出来ます。
空白.png
これを埋めると以下のようになります。

SampleActivityTest.java
package com.websarva.wings.android.junitsample1;

import static org.junit.Assert.*;

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

public class SampleActivityTest {

    SampleActivity sa;

    @Before
    public void setUp() throws Exception {
        sa = new SampleActivity(13,"Tanaka");
    }

    @Test
    public void explain() {
        assertEquals("id:13,name:Tanaka",sa.explain());
    }

    @Test
    public void getId() {
        assertEquals(13,sa.getId());
    }

    @Test
    public void getName() {
        assertEquals("Tanaka",sa.getName());
    }
}

説明していきます。
まずはsetUp()です。これはテストに必要なインスタンスを作るメソッドです。

    @Before
    public void setUp() throws Exception {
        sa = new SampleActivity(13,"Tanaka");
    }

次に各メソッドに対応するテストコードです。**assertEquals(期待値,実行値)「期待値と実行値が等しい」**ことを表明します。

    @Test
    public void getId() {
        //インスタンスでidのところに13を入れたから、getId()は13と等しいはず。
        assertEquals(13,sa.getId());
    }

ほかにも与えられた条件がtrueであることを表明する**assertTrue(条件式)**などもあるので調べてみてください。

手順④テストを実行
androidTestのところにあるSampleActivityTest.javaを右クリックしてRunします。
runTest.png
すると下にテスト結果が表示されます。
テスト結果.png
全てクリアしてますね。
例えば、SampleActivity.javaの**explain()**を以下のようにします。

   public String explain(){
        String explain;
        explain = "id="+id+",name="+name;//「:」を「=」にした。
        return explain;
    }

これでテストを実行すると以下のようにexplainの横に×が付きます。
テストエラー.png

#余談
公式ドキュメントを見るとbuild.gradleに色々追加しないといけないらしいですが、プロジェクトを作成した時点で、

dependencies {

    implementation 'androidx.appcompat:appcompat:1.4.0'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

すでにJUnitが追加されているので気にする必要は無いですね!

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?