Test einer App/eines Android-Projekts mit JUnit

Hin und wieder ist es notwendig einen Test für sein Projekt zu erstellen um die Funktion zu testen. Es ist auch ratsam solche Tests durchzuführen weil es einige Vorteile Bringt. Diese Tests sind bei Programmierern aber sehr unbeliebt weil sie viel Zeit in Anspruch nehmen.

Um es nicht allzu kompliziertzu machen fange ich gleich mal an.
Zunächst erstellt ihr euch ein kleines Android-Projekt mit, sagen wir, einer SeekBar und einem TextView welche den Wert der SeekBar anzeigen soll. Das Projekt findet ihr auch im Bereich „Apps“ auf meinem Blog zum Downloaden. Einmal mit JUnit-Test, einmal ohne, damit man die Schritte hier nachverfolgen kann und einmal als *.apk Datei.

Im gleichen Paket wie eure MainActivity des SeekBar-Projekts erstellt ihr eine neue JUnit Test Case Datei indem ihr rechtsklickt und sie dann in der Liste anklickt.
Ihr könnt fast alles so lassen wie es ist außer der Superclass. Dort wählt ihr „ActivityInstrumentationTestCase2“ aus und fügt in die spitzen Klammern eure MainActivity oder die zu testende Activity eures zu testenden Projekts.
Dann noch einen Haken bei „setUp()“ setzen. Das ist die Methode in der ihr die einzelnen Objekte(so wie SeekBar und TextView) referenziert.
new_jUnit00
Unten bei „Class under test:“ auch eure zu testende Klassen auswählen.
Wenn ihr jetzt auf „Finish“ klickt wird die Test-Klasse erstellt. Es steht aber ein Fehler an.
new_jUnit01
Wenn ihr mit der Maus darüber fahrt seht ihr wie euch 2 Möglichkeiten von Eclipse vorgeschlagen werden um den Fehler zu beheben.
new_jUnit02
Wählt die untere aus. Dann solltet ihr so ein Bild sehen.
new_jUnit03
Da für uns aber eine weitaus einfachere Methode ausreicht, streichen wir hier die Methodenparameter und ergänzen „pkg“ mit unserem Package und die „activityClass“ mit unserer Test-Klasse. Das sieht dann so aus:

Jetzt erstellen wir noch die testCases, also die Testfälle. Ihr könnt beliebig viele Testfälle erstellen. Ein Testfall wäre z.B. testSeekBar(){}. Jede Methode die mit „test“ anfängt wird von der JUnit nacheinander abgearbeitet/geprüft.

 
Soweit so gut. Wir wollen unsere Klasse jetzt testen. Aber wie?
In Android-App Projekten müssen wir erst bestimmen was wo ausgeführt wird indem wir eine StartVerknüpfung erstellen. Dazu auf den schwarzen Pfeil deben dem weißen Pfeil im grünen Kreis klicken und auf „Run Configurations…“ klicken:
new_jUnit11
Es erscheint folgendes Fenster:
new_jUnit06
Da es vorkommen kann, dass hier Fehler auftreten und man keinen „Instrumentation runner“ auswählen kann, weil es nichts zum Auswählen gibt, mache ich hier einen kleinen Einschub.


In der Manifest Datei eures Projekts müsst ihr nun 2 Sachen erledigen.
1. Unter dem Reiter „Instrumentation“, einen „InstrumentationTestRunner“ hinzufügen.
new_jUnit07
2. Unter dem Reiter „Application“ eine „Uses Library“-Permission setzen.
new_jUnit08


Jetzt solltet ihr die Start-Verknüpfung erstellen können.
new_jUnit06

Nun solltet ihr den Start gleich testen. Die App wird von der JUnit entweder auf dem Emulator oder dem Smartphone(wenn angeschlossen) gestartet.

Ergebnisse sollten nun so aussehen:
new_jUnit10
new_jUnit09

Schreibe einen Kommentar