当我在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());
}
});
}
答案 0 :(得分:3)
查看官方开发指南 - Activity Testing。
1确保触控模式已关闭:
要控制模拟器或具有您从测试发送的键事件的设备,您必须关闭触摸模式。如果不这样做,则忽略关键事件。
ActivityInstrumentationTestCase2.setActivityTouchMode(false);
2确保屏幕已解锁:
如果使用键盘锁模式禁用了模拟器或设备的主屏幕,您可能会发现UI测试不起作用。这是因为受测试的应用程序无法接收sendKeys()发送的关键事件。
mKeyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); mLock = mKeyGuardManager.newKeyguardLock("activity_classname"); mLock.disableKeyguard();