9

Robotium というインストルメンテーション テスト用のツールを見つけました。これは、Android アプリケーションのブラック ボックス テストを簡単かつシンプルに行うことができます。次のように使用できます。

    solo.clickOnText("Other");
    solo.clickOnButton("Edit");
    assertTrue(solo.searchText("Edit Window"));
    solo.enterText(1, "Some text for testing purposes")
    solo.clickOnButton("Save");
    assertTrue(solo.searchText("Changes have been made successfully"));
    solo.clickOnButton("Ok");
    assertTrue(solo.searchText("Some text for testing purposes"));

体はそれについてもっと考えられますか?ウェブビューやリストビューなどにどのように使用できるか教えてください。

4

5 に答える 5

15

Robotium がサポートするものに関する一般的な質問と回答については、QA wiki ページを参照してください: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

また、はじめにページにアクセスしてください: http://code.google.com/p/robotium/wiki/Getting_Started

そこには、ダウンロードしてアイデアを探すサンプル テスト プロジェクトがあります。http://code.google.com/p/robotium/downloads/listからjavadoc をダウンロードして、現時点でどのような機能があるかを確認することもできます。

チュートリアルについては、http ://code.google.com/p/robotium/wiki/RobotiumTutorials にアクセスしてください。

敬具、レナス

于 2010-02-22T19:15:24.550 に答える
14

Robotiumでできないことは言えます:)

  1. クロス アクティビティ テストでは、Robotium は同じ証明書アプリでのみ動作します。それ以外の場合は、注入イベントの例外が発生します (たとえば、スクリーン キーボードでクリックを行うことができません)。

  2. Robotium には、予期される/予期しないアラート/ポップアップ/ダイアログを処理するメカニズムがありません。たとえば、iOS の JavaScript テストには、アラートを処理するための非常に単純なブール値フラグとコールバックがあります。

  3. Robotium には自動スクロール方法に大きな問題があります (おそらく現在は修正されています)。

  4. Robotium には、Enum 値またはブール値 (成功/失敗) を返す代わりに、問題/予期しない状況を報告するための assertTrue(false) ロジックがあるため、24 時間年中無休で実行される適切なストレス テストのためには、テストを停止しない独自のメソッドを追加する必要があります。 、「メソッドは x y をクリックできませんでした」結果値を処理するだけです

  5. スクロール/リスト ビューで項目をクリックするには、いくつかのロジックを実装する必要があります。ビューの中央で Robotium クリックが行われるため、20% の部分のみが表示されているビューをクリックしようとすると、常に例外または assertTrue(false) が発生します。

一般的に、Robotium はとてもクールで便利で、とても気に入っています :) そして、この素晴らしいライブラリなしの生活は想像できません!

于 2011-04-05T11:50:01.323 に答える
2

searchText メソッドも ListView を検索します。アサーションと一緒に使用して、ListViews に適切なコンテンツが含まれていることを確認できます

于 2010-02-25T20:31:13.060 に答える
1

リストをクリックするため。アクティビティが ListActivity タイプの場合、クリックする必要がある行のインデックスである 1 つのパラメーターを指定して clickInList を使用できます。それ以外の場合は、listview 画面のインデックスと行番号の 2 つのパラメーターを指定して clickInList を使用します。WebView の場合、ページをロードする場合は、waitForText() メソッドを使用してコンテンツをチェックする必要があります。

その他の例: http://bitbar.com/blog/54/automated-ui-testing-android-applications-robotium

于 2010-07-16T08:18:03.940 に答える
0
  • ビュー

listViews の場合solo.getCurrentListViews()、現在の画面で多数のリスト ビューを返す次のメソッドを使用して、それらから他のオブジェクト タイプ ( Android ウィジェット) を反復処理または取得できます。たとえば、画面上のすべてのリストから画像ビューをクリックする必要があります。別のアクティビティにリダイレクトし、他のオブジェクトの状態のみを変更します。

ArrayList<ListView> lw = solo.getCurrentListViews(); // get all list views
// logging to logcat
Log.i("stats", "number of list views on the current screen: " + aLw.size());
if (aLw.size() != 0) 
for (ListView l: aLw) {
    // Take all image views from list and click each
    ArrayList <ImageView> aIw = solo.getCurrentImageViews(l);
    Log.i("stats", "list view " + l + " contains " + iw.size() + " image views.");
    if (aIw.size() != 0)
    for (int i = 0; i < aIw.size(); ) {
         // clicking
         solo.clickOnView(aIw.get(i));
         Log.i("click", "image view " + i " clicked."); 
    }
}

editTextビューにテキストを入力するか、textViews からテキストを取得できます。Robotium を Java および Android API と組み合わせることができます。たとえば、getVisibility()メソッドを使用して画面上の画像の可視性を確認し、 View.GONE 、 View.VISIBLE 、 View.INVISIBLE の 3 つの主要な状態比較ます。または、テストを実行する前に、Java メソッドHttpURLrequestを使用して接続を確認できます。

  • 他の

ソースがあれば、その ID を知っている任意のレイアウトからオブジェクトを取得できます! solo.waitForActivity()solo.assertMemoryNotLow()、のような素晴らしいものもたくさんありsolo.takeScreenShot()ます。

Robotium コミュニティに参加することで、 Robotium の使用に関するその他の例をここで見つけることができます。

于 2012-11-24T13:19:32.603 に答える