Ответ 1
У них немного разные привычки, и я стараюсь использовать оба в своих проектах.
Mockito
используется для создания издевательства над вашими классами.
Когда вы тестируете определенный класс, вы издеваетесь над всеми его зависимостями с Mockito.
По возможности, большинство ваших тестов должны использовать mockito. Чтобы сделать это возможным, большинство людей разбивают свой код на MVP и т.д., Когда бизнес-логика отделена от логики View. Таким образом, ваша бизнес-логика (Presenter) не имеет знаний (или зависимостей) в библиотеке Android и не нуждается в их издевательствах.
Robolectric
- это библиотека, которая содержит много макетов классов Android.
Тест-драйв Robolectric вводит эти "теневые объекты" вместо реальных классов Android, когда тесты выполняются. Это позволяет запускать тесты на JVM без загрузки экземпляра Android.
При использовании MVP ваш слой "Вид", как правило, реализуется Activity/Fragment, и здесь вы можете использовать Robolectric для издевательства над ними.
Примечания
Используйте Robolectric только там, где это необходимо. Он в основном обновляет части платформы Android, но не всегда точно так же.
Вам также может понадобиться другая библиотека, такая как PowerMock. Это позволяет издеваться над статическими классами, такими как Math, или может использоваться для издевательства со статическими классами Android, такими как TextUtils.
Оба используются с JUnit