Нужен пример Robolectric с Mockito для написания кейса - PullRequest
0 голосов
/ 24 сентября 2018

Как использовать Mocking (Mockito) с Robolectric, может кто-нибудь мне посоветовать, и я также хочу написать примеры модульных тестов для вызова API, я пробую с Robolectric, но он запускает только метку и действия, но для вызовов API какнаписать тестовый модуль в пакете Android Test, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 14 ноября 2018

вы не объединяете Mockito с Robolectric, насколько я понимаю, тестирование на Android.

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

С другой стороны, Mockito - это библиотека, которая позволяет вам: mock: ваши зависимости внутри модульного теста ,Цель модульного тестирования - проверить поведение конкретного объекта программного обеспечения, конкретно его логику, которую вы хотите протестировать.Поскольку у него нет доступа к платформе Android (он не нуждается в этом), он довольно быстрый.

Редактировать:

На самом деле все сложнее.Вы можете использовать Robolectric вместе с Mockito (введя правило Mockito в качестве Runner - тогда у вас будет 2 бегуна, один @RunWith (AndroidJunit4) - robolectric, с MockitoRule).И вы можете просто выполнить модульное тестирование чего-то, что требует доступа к Android SDK с помощью Robolectric, без фактического запуска действия ... Итак, вот тестовые конфигурации, которые я могу придумать на Android:

  1. (/test) Simple JUnit

  2. (/ test) JUnit + Mockito - классическое модульное тестирование в шаблонах проектирования

  3. (/test) AndroidJUnit (Robolectric) + Mockito без начальной активности - модульное тестирование, требующее как экземпляров android sdk, так и насмешек

  4. (/ test) ** AndroidJUnit (Robolectric)- начинает активность, вы тестируете пользовательский интерфейс с эспрессо

  5. (/ instrumentedTest) AndroidJUnit - тоже самое, тестируйте пользовательский интерфейс с эспрессо

Или вы также можете использовать sharedTest.Всего одна папка для обоих.С этим вы можете получить возможность запустить один тест как на устройстве, так и на виртуальной машине, я просто не знаю как.Возможно, Азот представит эту опцию в будущем.https://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/

В настоящее время существует множество способов настройки тестовой среды для определенного класса.Я надеюсь, что проект Nitrogen упростит процесс принятия решений и предоставит хорошую документацию по этому вопросу.

...