Sie haben leicht unterschiedliche Verwendungen und ich neige dazu, beide in meinen Projekten zu verwenden.
Mockito
wird zur Herstellung von Mocks von Ihre Klassen verwendet.
Wenn Sie eine bestimmte Klasse testen, verspotten Sie alle Abhängigkeiten mit Mockito.
Wo möglich, sollten die meisten Ihrer Tests mockito verwenden. Um dies zu ermöglichen, teilen die meisten Leute ihren Code in MVP usw. auf, wobei die Geschäftslogik von der View-Logik getrennt ist. Auf diese Weise hat Ihre Geschäftslogik (Presenter) keine Kenntnisse (oder Abhängigkeiten) in der Android-Bibliothek und es ist nicht notwendig, diese zu mokieren.
Robolectric
ist eine Bibliothek, die viele Mocks von Android Klassen enthält.
Der Robolectric Test Runner injiziert diese "Schattenobjekte" anstelle der tatsächlichen Android-Klassen, wenn die Tests ausgeführt werden. Dadurch können die Tests auf der JVM ausgeführt werden, ohne dass eine Instanz von Android gestartet wird.
Wenn Sie MVP verwenden, wird Ihre View-Ebene in der Regel von der Aktivität/dem Fragment implementiert. Hier können Sie Robolectric verwenden, um diese nachzuahmen. nur
Hinweise
Verwenden Robolectric, wo nötig. Es implementiert im Grunde Teile des Android-Frameworks, aber nicht immer auf genau die gleiche Weise.
Möglicherweise benötigen Sie auch eine weitere Bibliothek wie PowerMock. Dies ermöglicht das Mocking von statischen Klassen wie Math oder kann verwendet werden, um statische Android-Klassen wie TextUtils vorzuspielen.
Beide werden mit JUnit verwendet
Ich habe Activity & Fragment so für die ich robolectric & für meine Modellklassen verwenden werde, die mit Webservices verwandt ist, werde ich mockito verwenden. Recht? –
Nun, es ist vielleicht nicht so klar, aber das ist die allgemeine Idee. – Jahnold
Werfen Sie einen Blick auf die Tests für diese Beispiel-App, die Ihnen vielleicht ein paar Ideen geben könnten: https://github.com/emmaguy/rxjava-mvp-giphy – Jahnold