Я пытаюсь создать модульный тест на Android, который использует файл mockito-all-1.8.5.jar с mockito.org. Я добавил файл jar в свой проект, используя проект > свойства > путь сборки проекта > добавить внешний jar. Это всегда работало для меня в Java-проектах, отличных от Android.
Однако, когда я запускаю модульный тест, я получаю исключение следующего класса:
Java.lang.ClassNotFoundException: org.mockito.runners.VerboseMockitoJUnitRunner
Над ним следующее сообщение:
Не удается загрузить класс. Убедитесь, что он есть в вашем apk. Имя класса: «org.mockito.runners.VerboseMockitoJUnitRunner». Сообщение: org.mockito.runners.VerboseMockitoJUnitRunner
Я проверил банку, и класс там.
Я также попытался добавить по этой ссылке:
Как использовать и упаковать файл JAR с моим приложением для Android?
Но все равно не повезло. Как я могу найти этот класс?
Изменить: я думаю, что есть проблема с любыми библиотеками, от которых зависит Mockitto - они могут быть несовместимы с Dalvik jvm. Смотрите этот пост:
http://daverog.wordpress.com/2009/12/14/why-android-isnt-ready-for-tdd-and-how-i-tried-anyway/
1) Импортируйте фреймворк (например, mockito) в проект в качестве дополнительной зависимости. Любые импортированные jar-файлы, содержащие файлы классов, не скомпилированные в байт-код Dalvik (большинство), не будут работать. Попытка скомпилировать исходный код вместе с вашим проектом также не сработает, потому что большинство библиотек будут широко использовать части языка Java, несовместимые с Dalvik: он использует свою собственную библиотеку, построенную на подмножестве Java-реализации Apache Harmony.
1 ответ
Если вы выполняете внутри Dalvik JVM, вы не сможете использовать Mockito.
Однако, если вы запускаете свои модульные тесты на JVM для настольных компьютеров (например, с помощью среды тестирования, такой как Robolectric), тогда вы можете идти. В настоящее время я комбинирую их в своих проектах для Android, и это дает хороший эффект.
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.
VerboseMockito
**JUnit
**Runner
, это может быть из-за этого.