9 Stimmen

Beispiele für Robotium

Ich habe ein Tool für Instrumentationstests namens Robotium gefunden, das einfach und unkompliziert für Blackbox-Tests von Android-Anwendungen eingesetzt werden kann. Wir können es wie folgt verwenden:

    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"));

Kann jemand mehr darüber wissen? Kann jemand bitte sagen, wie wir es für Webviews und Listviews usw. verwenden können.

15voto

Renas Punkte 1919

Auf der QA-Wiki-Seite finden Sie allgemeine Fragen und Antworten dazu, was Robotium unterstützt: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

Gehen Sie bitte auch auf die Seite Erste Schritte: http://code.google.com/p/robotium/wiki/Getting_Started

Dort finden Sie ein Beispiel für ein Testprojekt, das Sie herunterladen und sich als Anregung ansehen können. Sie können auch die Javadoc von herunterladen: http://code.google.com/p/robotium/downloads/list um zu sehen, welche Funktionen derzeit vorhanden sind.

Tutorials finden Sie unter: http://code.google.com/p/robotium/wiki/RobotiumTutorials

Mit freundlichen Grüßen, Renas

14voto

user643154 Punkte 2221

Ich kann sagen, was man mit Robotium nicht machen kann :)

  1. Cross-Activities-Tests, Robotium ist in der Lage, nur mit dem gleichen Zertifikat app arbeiten, sonst erhalten Sie injizieren Ereignisse Ausnahme (zB Sie sind nicht in der Lage zu tun, Klicks auf dem Bildschirm Tastatur)

  2. Robotium verfügt über keinen Mechanismus zur Behandlung von erwarteten/unerwarteten Warnungen/Popus/Dialogen. Zum Beispiel hat iOs Javascript Tests sehr einfache boolesche Flagge und Callback für die Behandlung von Alarmen

  3. Robotium hat ein großes Problem mit Auto-Scrolling-Methoden (möglicherweise ist es derzeit behoben), z. B. wenn Sie nach einem Text suchen, der nicht angezeigt wird, stapelt Robotium am Ende der Scroll-Ansicht und macht assertTrue(false), um das Scrollen zu stoppen

  4. Robotium hat assertTrue (false) Logik für die Meldung von Problemen / unerwartete Situationen statt der Rückgabe einige Enum Wert oder boolesche (Erfolg / Misserfolg), so dass für eine gute Stress-Tests, die 24 / 7 müssen Sie Ihre eigenen Methoden, die nicht stoppen Test, nur behandeln 'Methode fehlschlagen zu klicken x y' Ergebniswert

  5. Sie müssen eine Logik zum Anklicken von Elementen in der Bildlauf-/Listenansicht implementieren. Da Robotium in der Mitte der Ansicht klickt, erhalten Sie immer eine Ausnahme oder assertTrue(false), wenn Sie versuchen, auf eine Ansicht zu klicken, in der nur 20 % der Elemente angezeigt werden

Im Allgemeinen ist Robotium sehr cool und hilfreich und ich mag es sehr :) Und ich kann mir ein Leben ohne diese großartige Bibliothek nicht mehr vorstellen!

2voto

Sarp Centel Punkte 1283

SearchText-Methode durchsucht auch ListViews. Sie können sie zusammen mit Assertions verwenden, um sicherzustellen, dass Ihre ListViews den richtigen Inhalt enthalten

1voto

michal Punkte 11

Um auf Liste zu klicken. Wenn Ihre Aktivität vom Typ ListActivity ist, können Sie clickInList mit einem Parameter verwenden, nämlich dem Index der Zeile, die angeklickt werden soll. In anderen Fällen verwenden Sie clickInList mit zwei Parametern - Listview-Bildschirmindex und Zeilennummer. Für WebView, wenn Sie eine Seite laden, sollten Sie waitForText() mathod verwenden, um den Inhalt zu überprüfen.

weitere Beispiele: http://bitbar.com/blog/54/automated-ui-testing-Android-applications-robotium

0voto

Gennadiy Ryabkin Punkte 6589
  • Ansichten

Für listViews können Sie folgende Methode verwenden solo.getCurrentListViews() die eine Anzahl von Listenansichten auf dem aktuellen Bildschirm zurückgeben, und dann durch andere Objekttypen iterieren oder diese erhalten ( Android-Widgets ) von ihnen müssen Sie zum Beispiel auf Bildansichten aus allen Listen auf dem Bildschirm, die Sie nicht zu einer anderen Aktivität weiterleiten und nur den Zustand anderer Objekte ändern:

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."); 
    }
}

Sie können Text eingeben in editText anzeigen oder Text aus textViews abrufen. Sie können Robotium mit Java und Android API kombinieren. Prüfen Sie zum Beispiel die Sichtbarkeit von Bildern auf dem Bildschirm mit getVisibility() Methode und vergleicht sie mit drei großen Staaten Ansicht.GONE , Ansicht.SICHTBAR , Ansicht.unsichtbar . Oder Sie können die Verbindung mit der Java-Methode prüfen HttpURLrequest vor der Ausführung Ihrer Tests.

  • Andere

Wenn Sie eine Quelle haben, können Sie Objekte aus jedem Layout nehmen, wenn Sie dessen ID kennen! Außerdem gibt es eine Menge toller Sachen wie solo.waitForActivity() , solo.assertMemoryNotLow() , solo.takeScreenShot() .

Weitere Beispiele für Robotium Nutzung können Sie hier finden, indem Sie sich Robotium-Gemeinschaft .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X