Android JUnit4 初心者導入用のサンプル

Android

AndroidのJUnitについては、ADTがEclipseだった時代にすこーしだけかじったことがあったぐらいで、ほかの担当者に任せていましたが、今回あらためて私がやることになったので、勉強がてら書いていきます。

どうやら、JUnitが4になって、だいぶ様子が変わったようです。
利用する開発環境は、Android Studio 2.1.1です。

以前は、junit.framework.TestCase classをExtendしないといけなかったり、メソッド名にtest とつけなくてはいけなかったのですが、そういうのもなくなったり、ほかにもかなり機能が拡張されているようです。

https://developer.android.com/training/testing/unit-testing/local-unit-tests.html?hl=ja

まずは、アプリケーションのレベルにあるbuild.gradleに次のように付け加えます。

 dependencies {
    
    //JUnitのために付け足し
    // Required -- JUnit 4 framework
    testCompile 'junit:junit:4.12'
    // Optional -- Mockito framework
    testCompile 'org.mockito:mockito-core:1.10.19'
 } 
 defaultConfig {
     //JUnitのために付け足し
     testInstrumentationRunner  "android.support.test.runner.AndroidJUnitRunner"
 
    }

早速ではありますが、これは初心者用!ということで、まずは超簡単!なテストスクリプトです。

たとえば、パスワードなどの入力のために、文字数を数えて、指定の文字数以上ならtrueを返す、というメソッドがあります。

 public class Validate {
   //中略
    /**
     * 特定の文字列が、定められた桁数以上かどうか
     */
    public static boolean isEnoughCharacters(String str, int number){
 
        if (str.length() < number) {
 
            return false;
 
        }
 
        return true;
    }

これのテストコードをつくります。

 app/src/test/java/ValidateTest.java

というファイルを作ります。

 import android.test.suitebuilder.annotation.SmallTest;
 
 import org.junit.Test;
 
 import java.util.HashMap;
 import java.util.regex.Pattern;
 
 import jp.onlineconsultant.densaburoporoto.utils.Validate;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 
 /**
 * 登録のバリデーションのテストユニット
 */
 
 @SmallTest
 public class ValidateTest {
 
    @Test
    public void isEnoughCharacter_ReturnsTrue() {
 
        String str = "hogehoge";
        int number = 6;
        assertTrue(Validate.isEnoughCharacters(str, number));
    }
  
 
 }

んで、作ったら、ValidateTest.javaを右クリックして、
「Run ValidateTest」
というのを選択します。

実行されて、Greenが表示されたでしょうか?!

ちなみに、Googleさんが提供する Google Cloud Test Labというのがあって、どうやら?たくさんの実機でテストできたみたいですが

https://developers.google.com/cloud-test-lab/?hl=ja

今は、Firebase というサービスに移ったみたいですね。

https://firebase.google.com/

まだ、ちょい見しかしていないので、よくわかりませんが、今後見てみます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です