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/
まだ、ちょい見しかしていないので、よくわかりませんが、今後見てみます。