© Excellent backgrounds/Shutterstock.com
Java Magazin
Unit Tests mit Android Studio

Test me - if you can!

Seit der Einführung des Android Studios als offizielle Android-IDE hält sich vehement das Gerücht, dass eine sinnvolle Absicherung der eigenen Sourcen durch Unit Tests nur mit sehr viel Bauchschmerzen und auch nur unter Verwendung der veralteten JUnit-Version 3.x zu realisieren ist. Hatte diese Aussage in der Version 1.0 durchaus noch ihre Berechtigung, gilt spätestens seit der Nachfolgerversion 1.1 das Gegenteil.

Arne Limburg, Lars Röwekamp


Sucht man im Internet nach Quellen zum Thema „Einrichten von Unit Tests im Android Studio“, stößt man unweigerlich auf ausführliche und nicht minder komplizierte Step-by-Step-Anleitungen, die beschreiben, wie Unit Tests im Android Studio trotz angeblich fehlender Unterstützung doch aktiviert werden können. In den meisten Fällen wird man dazu aufgefordert, das build.gradle-Skript um einige Zeilen zu erweitern, diverse Plug-ins zu laden und damit letztendlich die notwendigen Instrumentationstests zu ermöglichen.

Zugegeben, in den frühen Betaversionen des Android Studios war es tatsächlich alles andere als trivial, einen Unit Test zum Laufen zu bekommen. Und auch in der Version 1.0 gab es noch die ein oder andere Hürde, die es zu überwinden galt. Aber spätestens seit der Version 1.1 ist dieses Problem obsolet. Lediglich ein kleines Häkchen unter Enable Unit Test Support in den Gradle Preferences (Experimental) sowie die Verwendung des Gradle-Plug-ins 1.1.0 oder höher und schon können Unit Tests problemlos angelegt und ausgeführt werden. Noch einfacher ist es in der Nachfolgerversion 1.2, in der Unit-Test-Support per Default aktiviert ist.

Wo liegt was?

Android Studio unterscheidet bei Tests zwei Artefaktvarianten, welche gezielt in dem Build-Variantfenster ausgewählt und über eigene Run-Konfigurationen gestartet werden können. Während reine Unit Tests, also Tests, die ohne Unterstützung des Emulators bzw. des Android OS laufen, per Konvention in einem parallel zu src/main liegenden Verzeichnis src/test erwartet werden, sollten Android-Instrumentationstests, also Tests, die direkt oder indirekt auf das Android-Testing-Framework und somit auf den darin enthaltenen Instrumentationsmechanismus zurückgreifen, in dem Verzeichnis src/android­Test abgelegt werden.

JUnit-4-Support

Eine weitere Mär besagt, dass Unit Tests unter Android nur mit der JUnit-Version 3.x möglich sind, was u. a. strikte Namenskonventionen für die Testartefakte, also die Klassen und Methoden, mit sich bringt und die Verwendung von den erst in Version 4 eingeführten JUnit-Annotationen sowie allen weiteren JUnit-4-spezifischen Features verbietet. Auch dies stimmt heute in dieser Form nicht mehr.

Im Rahmen der Android Support Test Library, welche sich im Android Support Repository befindet und innerhalb des Android Studios via SDK Manager heruntergeladen werden kann, stellt Google einen eigenen AndroidJUnitRunner [1] zur Verfügung. Neben der ­JUnit-Version 3 wird so auch die Version 4 im vollen Um...

Java Magazin
Unit Tests mit Android Studio

Test me - if you can!

Seit der Einführung des Android Studios als offizielle Android-IDE hält sich vehement das Gerücht, dass eine sinnvolle Absicherung der eigenen Sourcen durch Unit Tests nur mit sehr viel Bauchschmerzen und auch nur unter Verwendung der veralteten JUnit-Version 3.x zu realisieren ist. Hatte diese Aussage in der Version 1.0 durchaus noch ihre Berechtigung, gilt spätestens seit der Nachfolgerversion 1.1 das Gegenteil.

Arne Limburg, Lars Röwekamp


Sucht man im Internet nach Quellen zum Thema „Einrichten von Unit Tests im Android Studio“, stößt man unweigerlich auf ausführliche und nicht minder komplizierte Step-by-Step-Anleitungen, die beschreiben, wie Unit Tests im Android Studio trotz angeblich fehlender Unterstützung doch aktiviert werden können. In den meisten Fällen wird man dazu aufgefordert, das build.gradle-Skript um einige Zeilen zu erweitern, diverse Plug-ins zu laden und damit letztendlich die notwendigen Instrumentationstests zu ermöglichen.

Zugegeben, in den frühen Betaversionen des Android Studios war es tatsächlich alles andere als trivial, einen Unit Test zum Laufen zu bekommen. Und auch in der Version 1.0 gab es noch die ein oder andere Hürde, die es zu überwinden galt. Aber spätestens seit der Version 1.1 ist dieses Problem obsolet. Lediglich ein kleines Häkchen unter Enable Unit Test Support in den Gradle Preferences (Experimental) sowie die Verwendung des Gradle-Plug-ins 1.1.0 oder höher und schon können Unit Tests problemlos angelegt und ausgeführt werden. Noch einfacher ist es in der Nachfolgerversion 1.2, in der Unit-Test-Support per Default aktiviert ist.

Wo liegt was?

Android Studio unterscheidet bei Tests zwei Artefaktvarianten, welche gezielt in dem Build-Variantfenster ausgewählt und über eigene Run-Konfigurationen gestartet werden können. Während reine Unit Tests, also Tests, die ohne Unterstützung des Emulators bzw. des Android OS laufen, per Konvention in einem parallel zu src/main liegenden Verzeichnis src/test erwartet werden, sollten Android-Instrumentationstests, also Tests, die direkt oder indirekt auf das Android-Testing-Framework und somit auf den darin enthaltenen Instrumentationsmechanismus zurückgreifen, in dem Verzeichnis src/android­Test abgelegt werden.

JUnit-4-Support

Eine weitere Mär besagt, dass Unit Tests unter Android nur mit der JUnit-Version 3.x möglich sind, was u. a. strikte Namenskonventionen für die Testartefakte, also die Klassen und Methoden, mit sich bringt und die Verwendung von den erst in Version 4 eingeführten JUnit-Annotationen sowie allen weiteren JUnit-4-spezifischen Features verbietet. Auch dies stimmt heute in dieser Form nicht mehr.

Im Rahmen der Android Support Test Library, welche sich im Android Support Repository befindet und innerhalb des Android Studios via SDK Manager heruntergeladen werden kann, stellt Google einen eigenen AndroidJUnitRunner [1] zur Verfügung. Neben der ­JUnit-Version 3 wird so auch die Version 4 im vollen Um...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang