Hanno usi leggermente diversi e io tendo ad usare entrambi nei miei progetti.
Mockito
viene usato per fare mock di tuoi classi.
Quando si verifica un particolare corso, si prende in giro tutte le sue dipendenze con Mockito.
Ove possibile, la maggior parte dei test dovrebbe utilizzare il mockito. Per rendere possibile tutto questo, molte persone suddividono il loro codice in MVP, ecc. Dove la logica aziendale è separata dalla logica della vista. In questo modo la tua logica di business (Presenter) non ha conoscenze (o dipendenze) nella libreria Android e non ha bisogno di prenderne in giro.
Robolectric
è una libreria che contiene molti mock di Android classi.
Il test runner Robolectric inietta questi "oggetti ombra" al posto delle effettive classi Android quando vengono eseguiti i test. Questo è ciò che consente di eseguire i test sulla JVM senza avviare un'istanza di Android.
Quando si utilizza MVP, il livello View tende ad essere implementato dall'attività/frammento e questo è il punto in cui è possibile utilizzare Robolectric per deriderli.
Note
Usa Robolectric solo dove necessario. In pratica reimplementa parti del framework Android ma non sempre nello stesso identico modo.
Potrebbe anche essere necessario un'altra libreria come PowerMock. Ciò consente di prendere in giro classi statiche come Math o può essere utilizzato per simulare classi statiche di Android come TextUtils.
Entrambi sono utilizzati con JUnit
Ho Activity & Fragment così che userò robolectric e per le mie classi di modelli che sono legate ai servizi web userò mockito. Destra? –
Beh, potrebbe non essere così chiaro ma sì, questa è l'idea generale. – Jahnold
Dai un'occhiata ai test per questa app di esempio che potrebbe darti qualche idea: https://github.com/emmaguy/rxjava-mvp-giphy – Jahnold