Wie Sie Ihre Android App Espresso zu Test

Als Entwickler, wissen Sie bereits, wie wichtig das Schreiben von Tests für Ihren Code. Dies gilt ebenso für Android-App-Entwicklung, wie es für jede andere Art von Entwicklung ist. Zum Glück, Android macht es einfach, Tests zu Ihrer Anwendung hinzuzufügen.

Die folgenden Informationen werden Ihnen die Grundlagen nehmen Tests auf Ihr Android-App mit Espresso hinzuzufügen. Espresso ist eine Bibliothek, die Schiffe mit dem Android SDK Tests Android Benutzeroberflächen einfacher zu machen.

So stellen Sie sicher, dass Ihre App wird mit gradle 2.1.1 oder höher mit Android Build-Tools 21.1.2 oder höher.

Um eine Espresso-Test, um Ihre Anwendung hinzufügen, müssen Sie:

  1. Ändern Sie bitte Ihre Build-Skript

  2. Schreiben Sie den Test

  3. Führen Sie den Test

Wie ändern Sie Ihre Build

Öffne das build.gradle Datei für Ihre Anwendung. Wenn Ihre Anwendung mehrere Module hat, sollten Sie die zu öffnen build.gradle Datei in Ihrem App-Modul, nicht im Root-Modul. Also für die App Silent Mode Toggle, würden Sie öffnen SilentModeToggle / build.gradle.

Fügen Sie die folgende Abhängigkeit zu den Abhängigkeiten Abschnitt Ihrer build.gradle Datei:

Abhängigkeiten {# 133- //TestAbhängigkeiten androidTestCompile 'com.android.support.test.espresso: Espresso-Kern: 2,0'}

Dies sagt Android Studio die Espresso-Bibliothek in Ihrem Test Abhängigkeiten enthalten. Die Espresso-Bibliothek wird nicht in die apk gebaut werden, die Sie versenden, aber es wird in Ihrem Test apk aufgenommen werden, damit die Tests es verwenden können.

Als Nächstes fügen Sie folgendes zu Ihrer defaultConfig:

DefaultConfig {# 133- //DasTestLäufernachbenutzenwannLaufendasTests. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}

Dies sagt Android welche Instrumentation verwenden, um Ihre Tests auszuführen. Sie brauchen nicht viel über die Besetzung, die nicht wissen, dass dies ist, die Sie verwenden müssen, wenn Sie Espresso-Tests ausgeführt werden soll.

Das ist alles, was Sie tun müssen, um Unterstützung für Espresso. Als nächstes müssen Sie den eigentlichen Test zu schreiben.

Wie um den Test zu schreiben

Um einen Test auf Android hinzufügen können, müssen Sie sicherstellen, dass Sie es an der richtigen Stelle setzen. Öffne dein src Verzeichnis in Android Studio, und erstellen Sie ein neues Verzeichnis mit dem Namen androidTest wenn es nicht bereits vorhanden ist. In diesem Verzeichnis, ein Verzeichnis namens machen Java.

Innerhalb des Verzeichnisses, das Sie gerade erstellt haben, erstellen Sie eine neue Datei mit dem Namen SilentModeToggleEspressoTest.java. Sie können es eigentlich nennen, was Sie wollen, so stellen Sie sicher, dass es endet in "Test.java".

Setzen Sie den folgenden in Ihre Testdatei:

public class SilentModeToggleEspressoTestextends ActivityInstrumentationTestCase2{Public SilentModeToggleEspressoTest () {super (MainActivity.class) -}}

Dadurch wird eine neue Klasse mit dem Namen SilentModeToggleEspressoTest. Es erstreckt sich ActivityInstrumentationTestCase2, die Sie verwenden, um die meisten App-Tests schreiben. ActivityInstrumentationTestCase2 wird auf der Art der Tätigkeit zu parametrieren Sie testen möchten. Für die SilentModeToggle App wird der App-Hauptaktivität, sinnigerweise genannt, Hauptaktivität.

Ihre Testklasse muss einen Standardkonstruktor zu haben, und in diesem Standardkonstruktors werden Sie die Super-Klasse aufrufen Konstruktor mit der Klasse der Aktivität getestet. Was haben Sie für fast jedes Android-Test bis jetzt geschrieben werden Sie jemals schreiben im Grunde werden-Kopie eingefügt.

Bevor Sie Ihren eigentlichen Test schreiben können, müssen Sie es einrichten. Um das zu tun, fügen Sie die folgende Methode, um Ihre Testklasse:

@Overridepublic Leere setUp () throws Exception {super.setUp () - getActivity () -}

Um eine Aktivität zu testen Espresso verwenden, müssen Sie zuerst erstellen die Aktivität getestet. Dies geschieht durch den Aufruf getActivity (), das schafft und startet die Aktivität für Sie, wenn es nicht bereits vorhanden ist. Sie tun dies, oben in der Konfiguration() Verfahren für die Klasse, die vor jedem der Tests ausgeführt wird, ausgeführt werden.

Nun endlich können Sie Ihre Test schreiben. Fügen Sie die folgende Methode, um Ihre Klasse:

public void testPhoneIconIsDisplayed () {// Wenn die phone_icon Ansicht verfügbar ist, // überprüfen, dass es displayed.onView (withId (R.id.phone_icon)) Prüfung (matches (wirdangezeigt ())) -.}

Sie werden die importieren müssen OnView, withId, prüfen, Streichhölzer, und Wird angezeigt Methoden. Android Studio bietet Ihnen die notwendigen statischen Importe zu unterstützen.

Espresso Tests sind so konzipiert, dass sehr leicht zu lesen. Wie Sie hier sehen können, ist dieser Test, bis die Ansicht mit der ID warten R.id.phone_icon verfügbar ist, und wenn es ist, wird es überprüft, dass die Ansicht angezeigt wird.

Der nächste Schritt ist es, den Test auszuführen.

Wie die Ausführung des Tests

Starten Sie zunächst einen Emulator oder verbinden Sie Ihr Telefon über USB mit Ihrem Computer.

Sobald Ihr Gerät angeschlossen ist und läuft, rechts, klicken Sie auf die Java Verzeichnis unter androidTest, und wählen Sie dann Run Alle Tests (mit dem Android-Symbol):

image0.png

Wenn der Test erfolgreich verläuft, sollten Sie so etwas wie die folgende:

image1.png

Warum sind wichtige Tests?

Warum sollten Sie sich diese Bemühungen nur einen einfachen Test hinzufügen? Man könnte denken, dass es kaum wert, scheint eine solche grundlegende Funktionalität zu testen.

Der Silent Mode Toggle App ist einfach genug, dass vielleicht ein fauler Programmierer Tests Überspringen rechtfertigen könnten. Könnte sein.

Wenn Sie ein paar Tests für das Hinzufügen von hinzufügen, entfernen und Bearbeiten von Aufgaben zu dieser App haben Sie die Ruhe des Geistes zu wissen, dass, wenn Sie eine Änderung vornehmen, wird Ihre automatisierten Tests keine wesentlichen Fehler zu fangen, die Sie einführen.

Wollen Sie wirklich erneut testen alle Funktionen der App auf Smartphones, Tablets, Uhren und Fernseher, und dann tun es alle wieder auf älteren Geräten die Abwärtskompatibilität zu testen? Hinzufügen von Tests können für Sie viel von dieser Schwierigkeit kümmern.

Über Espresso-Tests

Espresso-Tests werden im folgenden Format geschrieben:

OnView (Matcher) .perform (Viewaction) .check (ViewAssertion)

Die folgende Spickzettel, mit freundlicher Genehmigung des Espresso 2.0-Projekt, ist ein hilfreiches Tool für Tests Espresso zu schreiben. Es listet die allgemeine Syntax für Espresso-Tests, und es werden auch die häufigsten Arten von Matcher: Viewaction und ViewAssertion.

image2.png

Eine schnelle Möglichkeit, Espresso-Tests zu schreiben, ist Android Studio Vorteil von Auto-Vervollständigen-Funktionalität zu nehmen. Wenn Sie wissen, dass die meisten Matcher in der sind ViewMatchers Klasse, die meisten Ansicht Aktionen sind in Viewactions, und die meisten Ansicht Behauptungen sind in ViewAssertions, dann können Sie zur automatischen Vervollständigung zu finden die richtige Matcher verwenden:

image3.png

Lassen Sie uns fügen Sie ein mehr

Also in diesem Sinne, lassen Sie uns einen weiteren Test hinzuzufügen. Fügen Sie die Zeilen in Fettschrift auf Ihre Testklasse:

public class SilentModeToggleEspressoTestextends ActivityInstrumentationTestCase2{ Audio-ManageraudioManager-# 133- @ Overridepublic Leere setUp () throws Exception {super.setUp () - AktivitätAktivität=getActivity () - //AbrufeneinAudio-ManagervondasAktivität Audio-Manager=(Audio-Manager) activity.getSystemService (Context.AUDIO_SERVICE) - //MachensicherdasGlöcknerModusistzurückstellennachnormal audioManager.setRingerMode ( AudioManager.RINGER_MODE_NORMAL) -} # 133- ÖffentlichkeitLeeretestCanToggleIcon (){ //Wanndasphone_iconAussichtisterhältlich,klickenes . OnView (withId (R.id.phone_icon)) perform (click ()) - //DannbehauptendassdasTelefonistjetztimstillModus. assertTrue (RingerHelper.isPhoneSilent (Audio-Manager)) - }}

Dieser Test findet auf den Schalter, und darauf klickt, überprüft dann, dass die Silent-Modus der App eingeschaltet wurde. Das Konfiguration() Code sorgt dafür, dass der Rufton-Modus, bevor der Testläufe in den normalen zurückgesetzt wird. Nun, wenn Sie eine Änderung in Ihrer Anwendung zu machen, müssen Sie nur diese Testfälle ausführen, um das Vertrauen zu haben, dass Sie nicht wichtig, etwas gebrochen haben.

Wenn Sie eine kontinuierliche Integration Server haben, alles, was Sie tun müssen, ist die laufen connectedCheck Ziel in gradle Ihre Testfälle laufen mit jedem Commit Sie machen. Wenn Sie nicht über eine kontinuierliche Integration Server noch haben, ist vielleicht jetzt eine gute Zeit in eine zu suchen! Auschecken travis-ci.org für eine gute Wahl.

Testen Apps auf Android ist ein tiefes und beteiligt Thema, aber jetzt sollten Sie alles, was Sie haben müssen Testen Ihrer Anwendungen zu beginnen!

Wenn Sie gerne würde weiter fortgeschritten zu erhalten, können Sie in einigen der folgenden Ressourcen interessiert sein:

  • Benutzen Löffel auf mehreren Gerät zu testen.

  • Versuchen Gabel Tests schnell über mehrere Geräte hinweg zu laufen.

  • Versuchen travis-ci oder Jenkins für eine kontinuierliche Integration Server.

  • Michael Bailey Einführung in Android Testing Uhr auf Youtube.

Menü