Intereting Posts
Можно ли установить фоновый цвет значка в ящике уведомлений на Android, если используется Parse Push? Как проверить открытый файл без lsof Обновите приложение для Android (без Google Play) «Если каждый телефон отвечает на OK Google », Как обращаться с кнопкой «Назад» в диалоговом окне? Анимация изменения размера в дизайне материалов Ресурсы Catalan и Basque в Android Build.xml дает ошибки при компиляции эскиза обработки, который включает в себя ArduinoAdkUsb Динамический TextView в относительной компоновке Мой список не заполняет родительский Чат для Android с использованием XMPP-сервера и облачных сообщений Google (или более новых Firebase Cloud Messaging) для Push-уведомлений Метод фрагмента onActivityResult для выполнения активности вызовов onActivityResult Android Billing V3 Subscriptions Issue – подписка застряла в состоянии, которое нельзя отменить Android HttpResponse всегда умирает во второй раз, когда он называется Facebook Graph API: получение случайных друзей N?

Единичные тесты с JUnit + (Robolectric или Mockito или оба в Android)

Это первый раз, когда я должен написать блок-тесты в Android.

Поэтому я много искал.

  1. Robolectric framewordk – работает на JVM
  2. Mockito Framwork – Издевательские объекты

Поэтому у меня есть некоторые сомнения в Robolectric & Mokito.

  1. Должен ли я использовать Robolectric только с JUnit в Android-приложении?
  2. Должен ли я использовать Mockito только с JUnit в приложении для Android?
  3. Должен ли я пойти с обоими рамками?
  4. В чем разница между Mockito & Robolectric?

У меня есть поиск разницы между Mokito & Robolectric, но для этого нет правильного ответа.

Пожалуйста, предложите.

Solutions Collecting From Web of "Единичные тесты с JUnit + (Robolectric или Mockito или оба в Android)"

У них немного разные привычки, и я склонен использовать их как в своих проектах.

Mockito

Используется для создания издевательства над вашими классами.

Когда вы тестируете определенный класс, вы издеваетесь над всеми его зависимостями с Mockito.

По возможности, большинство ваших тестов должны использовать mockito. Чтобы сделать это возможным, большинство людей разбивают свой код на MVP и т. Д., Когда бизнес-логика отделена от логики View. Таким образом, ваша бизнес-логика (Presenter) не имеет никаких знаний (или зависимостей) в библиотеке Android и не нуждается в их издевательствах.

Robolectric

Это библиотека, которая содержит много макетов Android- классов.

Тест-драйв Robolectric вводит эти «теневые объекты» вместо реальных классов Android, когда тесты выполняются. Это позволяет запускать тесты на JVM без загрузки экземпляра Android.

При использовании MVP ваш слой «Вид», как правило, реализуется Activity / Fragment, и здесь вы можете использовать Robolectric, чтобы имитировать их.

Заметки

Используйте Robolectric только там, где это необходимо. Он в основном повторно реализует части платформы Android, но не всегда точно так же.

Вам также может понадобиться другая библиотека, такая как PowerMock. Это позволяет высмеивать статические классы, такие как Math, или может использоваться для издевательства со статическими классами Android, такими как TextUtils.

Оба используются с JUnit

Только Мокито может охватывать большинство случаев.

Тем не менее, Robolectric также может предоставлять ограниченные возможности для Android-компонентов, таких как Activity или Fragment in Unit Test (не проверка инструментария, которая не зависит от Android SDK), которая не требует эмулятора или устройств и значительно быстрее, чем контрольные тесты.

Мое предложение: используйте Mockito для модульного теста и Espresso для тестирования пользовательского интерфейса, поскольку они являются полуофициальными тестовыми платформами для Android.

Добавьте Robolectric в свой модульный тест, если есть некоторые зависимости от Android SDK.