0

В настоящее время у меня есть различные AndroidTestCases, которые используют Mockito и модуль dexmaker-mockito. Теперь я пытаюсь добавить Robolectric тестовые примеры, используя robolectric plugin. У меня все работает нормально, за исключением того, что когда я пытаюсь издеваться над методами без аргументов, я получаю IllegalArgumentException от Dexmaker. Удаление зависимостей dexmaker-mockito и использование версии mockito 1.9.0 вместо 1.9.5 заставляет ошибку уходить, но все мои AndroidTestCases терпят неудачу. Есть ли вообще в gradle, чтобы иметь dexmaker-mockito исключить из моих robolectric чеков? Или кто-нибудь знает какой-либо другой способ запустить тест на Android-модуле android-robolectric unit от студии Android?Запуск теста robolectric and android unit от студии Android

Error: java.lang.IllegalArgumentException at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke

Update

Я попытался gradle-android-test-plugin и robolectric-gradle-plugin, но не смог избавиться от IllegalArguementException без изменения версии mockitio для 1.9.0 и удаления dexmaker, dexmaker-mockito из моих зависимостей.

Я попробовал guide, но не смог заставить Android-студию распознавать мои исходные каталоги, не добавляя их в основные или тестовые исходные наборы, которые прерывают мою сборку, потому что robolectric не скомпилирован для этих задач градиента, и я не хочу, чтобы это было ,

В конце концов, после руководства here ошибка исчезла, когда я запускал тесты из командной строки, но сохранялся при запуске из студии Android, которую я нашел нечетным. Снова изменив версию mockitio до 1.9.0 и удалив dexmaker, dexmaker-mockito из моих зависимостей в моем приложении для Android, удалила ошибку. На данный момент я соглашусь на то, что не смогу запустить модульные тесты в студии android, пока не найду лучший ответ.

+1

где код ??????? –

+0

Мой код немного сложный, учитывая пример, я попробую написать какое-то простое приложение и отправить его. – TravisW

+0

Вы нашли решение? У меня точно такая же проблема прямо сейчас. – Christoph

ответ

0

Если я правильно понимаю, что должен делать dexmaker-mockito, он предназначен для использования с Android Unit Tests, которые работают на устройстве, поэтому это хорошо для ваших тестовых случаев Android.

Robolectric тесты запускаются на JVM и должны запускаться как тест JUnit, а не тесты для Android. Они не должны использовать dexmaker-mockito, так как они никогда не будут разворачиваться на устройство, они могут просто использовать обычные библиотеки Mockito, с областью действия для тестирования.

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

+0

Итак, единственное решение - иметь тестовые примеры в отдельных модулях? Это приводит к сбою плагина Robolectric. – TravisW

+0

Нам будет намного легче помочь вам, если вы обновите вопрос, точно описывая, что именно вы пытались, и с какими ошибками вы столкнулись, когда вы пробуете различные решения. –

+0

Извините, я пошел дальше и добавил, что я пробовал, и изменил вопрос, чтобы более точно отразить мою проблему. – TravisW