Gerade heruntergeladenes Android Studio, das auf der Intellij-Idee basiert.
Wie würde man Tests erstellen?
Ich stelle fest, dass es eine Option zum Erstellen eines Testmoduls gibt, aber dies scheint nichts zu bewirken, sondern nur ein neues Projekt mit src zu erstellen
Ich habe auch versucht, die Tastenkombination STRG + ALT + T zu drücken, um Komponententests für eine vorhandene Klasse zu erstellen, aber es scheint, als würde ich sie in das aktuelle Projekt einfügen wollen. Natürlich hilft das bei TDD nicht
Hat jemand hier irgendwelche Erfahrungen?
Antworten:
Diese Antwort richtet sich an Personen, die gerade erst mit Android-Tests beginnen. Ich werde zwei einfache Beispiele geben, um Ihnen zu zeigen, wie das Testen funktioniert. Wenn Sie die nächsten 10 Minuten mitmachen, können Sie Ihre Tests zu Ihrer eigenen App hinzufügen. Ich denke, Sie werden überrascht sein, wie einfach es ist. Ich war es auf jeden Fall.
Einführung in Android-Tests
Es gibt zwei verschiedene Arten von Tests, die Sie durchführen werden.
Context
ist ein Beispiel.)Wenn Sie ein neues Projekt erstellen, werden die folgenden Standardordner angezeigt.
Alles ist bereits da und wartet darauf, dass Sie Ihre Tests erstellen. Es ist alles schon eingerichtet!
So erstellen Sie lokale Komponententests
Öffnen Sie die
ExampleUnitTest
im obigen Bild gezeigte Datei. es sollte ungefähr so aussehen:Drücken Sie den doppelten grünen Pfeil, um alle Tests auszuführen, oder den einzelnen grünen Pfeil, um nur einen auszuführen. (In diesem Fall gibt es nur einen Test, sodass beide dasselbe tun.)
Es sollte vergehen (solange
2 + 2
es noch ist,4
wenn Sie diese Antwort lesen). Herzlichen Glückwunsch, Sie haben gerade Ihren ersten Test durchgeführt!Machen Sie Ihren eigenen Test
Schreiben wir unseren eigenen Test. Fügen Sie diese Klasse zuerst Ihrem Haupt-App-Projekt hinzu, damit wir etwas testen können:
Ändern Sie nun die
addition_isCorrect()
Methode in der Testklasse so, dass sie dem folgenden Code entspricht (oder fügen Sie einfach eine andere Methode mit einem anderen Namen hinzu):Führen Sie es erneut aus und Sie sollten sehen, dass es vorbei ist. Herzlichen Glückwunsch, Sie haben gerade Ihren eigenen ersten Test erstellt! (Nun, ich denke, technisch gesehen war es meins, aber hey, nah genug. Was mir gehört, gehört dir.)
So erstellen Sie instrumentierte Tests
Öffnen Sie die
ExampleInstrumentedTest
Datei. es sollte ungefähr so aussehen:Drücken Sie erneut eine dieser grünen Tasten.
Solange Sie ein echtes Gerät angeschlossen oder den Emulator eingerichtet haben, sollte es gestartet und Ihre App ausgeführt werden. Herzlichen Glückwunsch, Sie haben gerade Ihren ersten instrumentierten Test durchgeführt!
Machen Sie Ihren eigenen Test
Die instrumentierten Tests verwenden Espresso , um die Tests durchzuführen. Es ist wie bei Ihrem eigenen kleinen Roboterbenutzer, dass Sie Ihre App testen lassen können. Sie können festlegen, dass beispielsweise eine Taste gedrückt oder die Eigenschaften einer Textansicht gelesen werden sollen.
Sie können die Anweisungen für die Durchführung des Tests von Hand schreiben. Da wir jedoch gerade erst anfangen, verwenden wir die Funktion zur automatischen Aufzeichnung . Es ist super einfach.
Fügen Sie Ihrer Benutzeroberfläche zunächst eine Schaltfläche hinzu, damit wir mit etwas arbeiten können. Ich war das:
Drücken Sie dann im Menü auf Ausführen> Espressotest aufzeichnen.
Klicken Sie nach dem Start auf die Schaltfläche im Emulator und wählen Sie zum Abschluss OK im Dialogfeld Aufzeichnen. Der folgende Testcode sollte automatisch generiert werden.
Toll! Sie haben gerade Ihren ersten instrumentierten Test erstellt! Das war super einfach. Sie sollten wahrscheinlich eine Behauptung hinzufügen, um es zu einem echten Test zu machen, aber das ist auch mit dem Rekorder ziemlich einfach. Sehen Sie sich dieses Video an an, um etwas tiefer zu gehen.
Weitere Studie
Ich würde mir zuerst die Videos ansehen und dann die Dokumentation durchlesen. Es ist alles ziemlich hilfreich. Der letzte Link führt zu einer Reihe von Artikeln, die einige wichtige Dinge behandeln, über die Sie nachdenken sollten, wenn Sie auswählen, was getestet werden soll.
quelle
/app
, aber wenn ich in Android Studio ausgeführt werde, werden die Tests von root_ ausgeführt . Wenn ich jedoch über die Gradle-Befehlszeile (oder CI) ausgeführt werde, ist dies der Fall Wurzel . (Idealerweise möchte ich auf bestimmteassets
Ordner zugreifen, wenn diese so oder so ausgeführt werden.)test/resources
und dort Dateien ablegen , z. B.test.txt
mit darauf zugreifengetClass().getClassLoader().getResource("test.txt")
. Ich habe entschieden, dass der direkte Zugriff auf die APK-Assets wahrscheinlich eine schlechte Idee ist. Daher werde ich mich darum kümmern, indem ich entweder die zu testenden Dateien in einem Erstellungsschritt oder in einem externen Aktualisierungsprozess kopiere. Es gibt noch einige Fragen zu verschiedenen Versionen von Gradle, aber ich habe mich dem noch nicht gestellt.Bearbeiten: Ab 0.1.8 wird dies jetzt in der IDE unterstützt . Bitte befolgen Sie die dortigen Anweisungen, anstatt die folgenden Anweisungen zu verwenden.
Nach dem Android Gradle Plugin-Benutzerhandbuch konnte ich Tests in der Befehlszeile ausführen, indem ich die folgenden Schritte für ein neu erstelltes Projekt ausführte (ich habe das Standardpaket 'com.example.myapplication' verwendet):
Dadurch wurden meine Tests ausgeführt und die Testergebnisse in MyApplicationProject / MyApplication / build / reports / instrumentTests / linked platziert. Ich bin neu im Testen von Android-Apps, aber es scheint gut zu funktionieren.
Innerhalb der IDE können Sie versuchen, dieselbe Testklasse auszuführen. Du musst
Dies schlägt jedoch fehl (dem beim Ausführen der Tests verwendeten Klassenpfad fehlt das Testausgabeverzeichnis). Ich bin mir jedoch nicht sicher, ob dies funktionieren würde, da ich verstehe, dass ein Android-spezifischer Testläufer erforderlich ist.
quelle
Ich würde vorschlagen, die Datei gradle.build zu verwenden.
Fügen Sie ein src / androidTest / java- Verzeichnis für die Tests hinzu (wie Chris zu erklären beginnt)
Öffnen Sie die Datei gradle.build und geben Sie dort Folgendes an:
Klicken Sie auf "Projekt mit Gradle-Datei synchronisieren" (oben). Sie sollten jetzt sehen, dass ein Ordner "java" (innerhalb von "androidTest") eine grüne Farbe hat.
Jetzt können Sie dort beliebige Testdateien erstellen und ausführen.
quelle
Ich denke, dieser Beitrag von Rex St John ist sehr nützlich für Unit-Tests mit Android Studio.
(Quelle: rexstjohn.com )
quelle
Android Studio v.2.3.3
Markieren Sie den Codekontext, den Sie testen möchten, und verwenden Sie den Hotkey:
CTRL
+SHIFT
+T
Verwenden Sie die Dialogoberfläche, um die Einrichtung abzuschließen.
Das Testframework soll Ihr Projektpaketlayout spiegeln, um die besten Ergebnisse zu erzielen. Sie können jedoch manuell benutzerdefinierte Tests erstellen, sofern Sie über das richtige Verzeichnis und die richtigen Build-Einstellungen verfügen.
quelle
Ab sofort (Studio 0.61) reicht es aus, die richtige Projektstruktur beizubehalten. Es ist nicht erforderlich, ein separates Testprojekt wie in Eclipse zu erstellen (siehe unten).
quelle
Android Studio entwickelt sich weiter, sodass die oben genannten Antworten möglicherweise nicht mehr zutreffen. Für die aktuelle Version von Android Studio 1.2.1.1 gibt es ein nettes Tutorial zum Testen unter:
http://evgenii.com/blog/testing-activity-in-android-studio-tutorial-part-1/
quelle
Eine der wichtigsten Änderungen scheint zu sein, dass die Testanwendung mit Android Studio in das Anwendungsprojekt integriert ist.
Ich bin nicht sicher, ob dies Ihrem spezifischen Problem hilft, aber ich habe eine Anleitung zum Durchführen von Tests mit einem Gradle-Projekt gefunden. Android Gradle Benutzerhandbuch
quelle
Der einfachste Weg, den ich gefunden habe, ist der in meinem folgenden Blog-Beitrag optimierte :
Viel Glück, damit Ihr Code besser lesbar, wartbar und gut getestet wird!
quelle
Android Studio war eine Art bewegendes Ziel, zuerst eine Entwicklervorschau und jetzt in der Beta. Der Pfad für die Testklassen im Projekt hat sich im Laufe der Zeit geändert. Unabhängig davon, welche AS-Version Sie verwenden, wird der Pfad in Ihrer IML-Datei deklariert. Derzeit finden Sie mit Version 0.8.3 Folgendes in der inneren IML-Datei:
In der IML-Datei erfahren Sie, wo Sie Ihre Testklassen platzieren müssen.
quelle
Ab Android Studio 1.1 haben wir offizielle (experimentelle) Unterstützung für das Schreiben von Unit-Tests (Roboelectric funktioniert auch).
Quelle: https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support
quelle
Fügen Sie unten lib in gradle Datei hinzu
Erstellen Sie die Klasse HomeActivityTest im androidTest-Verzeichnis und fügen Sie vor dem Ausführen des Tests die Zeichenfolge flurry_api_key und sender_id in die Zeichenfolgendatei ein und ändern Sie den Wert für den Fehler- und Erfolgsfall.
quelle