3

エミュレータ画面のロックが解除されている場合は正常に実行されますが、画面がロックされている場合は失敗する Android JUnit テストがあります。問題を示すサンプルを次に示します。

package com.example.helloandroid.test;

import com.example.helloandroid.HelloAndroid;

import android.test.ActivityInstrumentationTestCase2;
import android.view.KeyEvent;
import android.widget.EditText;

public class HelloAndroidTest extends
    ActivityInstrumentationTestCase2<HelloAndroid> {
    private HelloAndroid mActivity;
    private EditText editText;

    public HelloAndroidTest() {
        super("com.example.helloandroid", HelloAndroid.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        mActivity = this.getActivity();
        editText = (EditText)mActivity.findViewById
            (com.example.helloandroid.R.id.editText);
    }

    public void testEditTextFormatting() {
        this.sendKeys(KeyEvent.KEYCODE_1);
        assertEquals("1", editText.getText().toString());
    }
}

この例でテスト中のアプリケーションは、Android チュートリアルの「Hello World」であり、TextView が editText という EditText フィールドに置き換えられています。

現在、アプリで画面のロックを解除することで、アプリケーションでこの問題を回避しています。ただし、このソリューションは、アプリに DISABLE_KEYGUARD アクセス許可を強制的に要求するため、最適ではありません。

過去 1 年間に何度もインターネットを検索しましたが、何も見つかりませんでした。助言がありますか?御時間ありがとうございます!

4

0 に答える 0