エミュレータ画面のロックが解除されている場合は正常に実行されますが、画面がロックされている場合は失敗する 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 年間に何度もインターネットを検索しましたが、何も見つかりませんでした。助言がありますか?御時間ありがとうございます!