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 权限,否则它不需要。

在过去的一年里,我多次在互联网上搜索过,但都是空的。有什么建议么?谢谢你的时间!

4

0 回答 0