1

当我在 Android 模拟器中运行以下测试时,输入值不会显示在 EditText 中。为什么不呢?我需要更改什么才能在模拟器中看到输入?(测试通过了,所以最后可能没关系。我只是希望能够在模拟器中看到它实际发生。)

public void testOkButtonOnClickWithUserInputNumber() throws Throwable {
    this.sendKeys(Integer.toString(this.testNumber)); // 123

    this.runTestOnUiThread(new Runnable() {
        @Override
        public void run() {
            Assert.assertTrue(NumberFilterTest.this.okButton.performClick());
        }
    });

    this.getInstrumentation().waitForIdle(new Runnable() {
        @Override
        public void run() {
            Assert.assertTrue(NumberFilterTest.this.activity.isFinishing());
        }
    });
}
4

1 回答 1

3

查看官方开发指南 -活动测试

1 确保触摸模式已关闭:

要使用您从测试中发送的关键事件来控制模拟器或设备,您必须关闭触摸模式。如果您不这样做,则忽略关键事件。

 ActivityInstrumentationTestCase2.setActivityTouchMode(false);

2 确保屏幕已解锁:

如果使用键盘保护模式禁用了模拟器或设备的主屏幕,您可能会发现 UI 测试不起作用。这是因为被测应用无法接收到 sendKeys() 发送的按键事件。

 mKeyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
 mLock = mKeyGuardManager.newKeyguardLock("activity_classname");
 mLock.disableKeyguard();
于 2012-11-01T00:49:16.200 回答