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 に答える