Testfälle mit JUnit +(Robolectric oder Mockito oder beides Android)
Dies ist das erste mal, ich habe das schreiben von unit-Testcases in Android.
So, ich habe gesucht, viele Dinge.
- Robolectric framewordk - Läuft auf JVM
- Mockito Framwork Mocking - Objekte
So, ich habe einige Zweifel in Robolectric & Mokito.
- Sollte ich verwenden, Robolectric nur mit JUnit in der Android-app?
- Sollte ich verwenden, Mockito nur mit JUnit in der Android-app?
- Sollte ich gehen mit den beiden Rahmen?
- Was ist der Unterschied zwischen Mockito & Robolectric?
Ich Suche für den Unterschied zwischen Mokito & Robolectric, aber bekomme keine richtige Antwort.
Bitte vorschlagen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie haben leicht unterschiedliche Nutzungen und ich Neige dazu zu verwenden, sowohl in meinen Projekten.
Mockito
wird verwendet für die Herstellung verspottet von Ihre Klassen.
Wenn Sie testen, eine bestimmte Klasse, die Sie mock alle seine Abhängigkeiten mit Mockito.
Wo möglich, die meisten sollten Ihre tests verwenden mockito. Um dies möglich zu machen, die meisten Leute aufgeteilt Ihren code in MVP, etc, wo die business Logik ist getrennt von der View-Logik. So wird Ihre business-Logik (Presenter) keine Kenntnis hat (oder Abhängigkeiten) auf der Android-Bibliothek und hat es nicht nötig zu haben, verspottet von Ihnen.
Robolectric
ist eine Bibliothek, die enthält viele mocks von Android Klassen.
Den Robolectric test-runner injiziert, diese " Schatten der Objekte im Ort der das aktuelle Android-Klassen, wenn die tests ausgeführt werden. Dies ist, was ermöglicht, die tests laufen auf der JVM ohne starten einer Instanz von Android.
Bei der Verwendung von MVP-Ihre View-Schicht neigt dazu, umgesetzt werden, indem die Aktivität/Fragment, und dies ist, wo Sie verwenden können, Robolectric, zu verspotten diese.
Hinweise
Verwenden Robolectric nur wo nötig. Es ist im Grunde re-implementiert Teile des Android-framework aber nicht immer in genau der gleichen Weise.
Möglicherweise müssen Sie auch anderen Bibliothek wie PowerMock. Dies ermöglicht es der Spott von statischen Klassen wie Mathe oder kann verwendet werden, um statische mock-Android-Klassen wie TextUtils.
Beide werden mit JUnit
Mockito allein decken können, den meisten Fällen.
Jedoch, Robolectric können auch bestimmte Operationen auf Android-Komponente, wie Activity oder Fragment in Unit-Test (nicht instrumentation testen, die hat keine Abhängigkeit von Android SDK), die nicht benötigt keine emulator oder Geräte und ist deutlich schneller als instrumentation-tests.
Mein Vorschlag: verwenden Sie Mockito für unit-test und Espresso für UI test, da Sie semi-offizielle test-frameworks für Android.
Hinzufügen Robolectric in deinem Gerät Testen, ob es gibt einige Abhängigkeiten zu den Android-SDK.