2

非常に簡単なテストがあります。ボタンをクリックし、ボタンがクリックされた回数を示すメッセージを TextView に表示します。テストは次のようになります。

@Smoke
public void testMessageIsUpdatedWhenButtonIsClicked() {
    _solo.clickOnButton(0);
    String displayedMessage = ((TextView) _solo.getView(R.id.messageTextView)).getText().toString();
    assertEquals("You clicked 1 times.", displayedMessage);
}

ここで、テストを実行すると、Activity の起動時からの元のテキストが TextView に表示されているため、アサートは失敗します。ボタン用に作成した OnClickListener が呼び出されていないようです。

他の誰かがこの問題を見たことがありますか?

問題を回避するために男ができることはありますか?

4

6 に答える 6

4

私は同様の問題を抱えていました。私の場合、問題はキーボードでした!キーボードが開いているため、robotium には「OK」と「キャンセル」のボタンが表示されません。解決策: キーボードを非表示にしてからボタンを押します。

solo.enterText(0, "Hello!");
        solo.goBack(); //hide the keyboard
        solo.clickOnButton("\u041E\u041A");
于 2011-11-17T08:05:42.020 に答える
1

これが古いことは知っていますが、頭痛の種が多かったので投稿したかったのです。

トム、あなたはコメントで次のように述べました。

テスト プロジェクトの AndroidManifest.xml に次を追加しました。<uses-sdk android:targetSdkVersion="10" />次に、これをアプリケーションの AndroidManifest.xml に追加しました<supports-screens android:anyDensity="true"/>。バグレポートを提出する必要がありますか?

<uses-sdk android:targetSdkVersion="10" />実際の解決策は、実際のテストアプリではなく、テストしているアプリに追加することです。この1つの変更は私にとってうまくいきます。solo.clickButton("button text");これで、意図したとおりに使用できるようになり、回避策を使用する必要がなくなりました。

それが役に立てば幸い

于 2013-06-04T20:49:22.843 に答える
0

私はよくそれを使用して見つけます

solo.clickOnText("buttonName"); 

ボタンの上ではなく、より良いアプローチのようです。Robotiumは、ボタンのクリックに問題があるように見えることがあります。ボタンIDを使用する場合は、次のことをお勧めします。

solo.waitForIdleSync();
solo.clickOnButton(R.id.whatever);
于 2012-02-14T09:51:36.473 に答える
0

ソロを使用してボタンをクリックしたとき。名前やボタンの検索ではなく、インデックス ベースのクリックを使用します。インデックスは 0 から始まります。

solo.clickOnButton(1);

ソロ クリックはインデックスで最適に機能します

于 2015-03-12T09:46:20.453 に答える
0

私は同様の問題を抱えていました。「ゲーム」というテキストが付いたボタンがあり、テストケースでクリックしたかったのです。「ソロ」で多くの実験の後。以下のコードが機能することがわかりました。

solo.waitForDialogToClose(10000);
solo.clickOnButton("Games");

私の場合、ボタンが初期化されて onClickListener が割り当てられる前であっても、ボタンがクリックされていたという問題がありました。

于 2011-08-02T13:26:49.530 に答える