Android Espresso パスワードなどのバリデーションチェック

Android

登録フォームなどのテスト、一番いやですよね~
あれやこれやと境界値を入力して、エラーメッセージを確認したり…。
手でやるとしんどいので、こういう時こそEspressoの出番です。

//RegisterActivity.java

 public class Validate {
 
    public static List<String> validateNormalRegisterInfo(HashMap<String, String> info, Context context){
 
        List<String> errorList = new ArrayList<>();
 
        if (! isEnoughCharacters(info.get("password"), 6)) {
            errorList.add(context.getString(R.string.error_password));
        }else if ( !info.get("password").matches("[0-9a-zA-Z]+")) {
            errorList.add(context.getString(R.string.error_password_novalid));
        }
 
        return errorList;
    }
 //ValidateTest.java
 public class  ValidateTest {
 
    @Rule
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class);
 
    @Test
    public void isEnoughCharacter_ForPassword(){
 
        HashMap<String, String> map = new HashMap();
        map.put("password", "12345");
 
        List<String> testErrorList = new ArrayList<>();
 
        Activity activity = mActivityRule.getActivity();
        testErrorList.add(activity.getString(R.string.error_password));
        
        Assert.assertEquals(testErrorList, Validate.validateNormalRegisterInfo(map, activity));
    }
 
    @Test
    public void isValidCharacter_ForPassword(){
 
        HashMap<String, String> map = new HashMap();
        map.put("password", "うりぃぃぃぃぃぃ");
 
        List<String> testErrorList = new ArrayList<>();
 
        Activity activity = mActivityRule.getActivity();
        testErrorList.add(activity.getString(R.string.error_password_novalid));
 
        Assert.assertEquals(testErrorList, Validate.validateNormalRegisterInfo(map, activity));
    }
 
 }

あまり本題ではないのですが、テストコードからリソースを読みだすところ

 getString(R.string.error_password)

に地味に詰まりましたね。

まだまだEspresso、勉強中なので、こうすればいいよ!とかあれば、教えてください。┌o ペコッ

コメントを残す

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