我有一个 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 权限,否则它不需要。
在过去的一年里,我多次在互联网上搜索过,但都是空的。有什么建议么?谢谢你的时间!