Тест Android Junit - класс Mockito не найден, исключение - PullRequest
5 голосов
/ 30 марта 2011

Я пытаюсь создать модульный тест на Android, который использует файл mockito-all-1.8.5.jar из mockito.org.Я добавил файл jar в свой проект, используя проект> свойства> путь сборки проекта> добавить внешний jar.Это всегда работало для меня на не-Android Java-проектах.

Однако, когда я запускаю модульный тест, я получаю следующее исключение: класс не найден:

java.lang.ClassNotFoundException: org.mockito.runners.VerboseMockitoJUnitRunner

вышеэто следующее сообщение:

Невозможно загрузить класс.Убедитесь, что это в вашем apk.Имя класса: 'org.mockito.runners.VerboseMockitoJUnitRunner'.Сообщение: org.mockito.runners.VerboseMockitoJUnitRunner

Я проверил банку, и класс там.

Я также попытался добавить по этой ссылке:

Как использовать и упаковать JAR-файл с моим приложением для Android?

Но, по-прежнему, нетудачи.Как мне найти этот класс?

Редактировать: Я думаю, что есть проблема с любыми библиотеками, от которых зависит Mockitto - они могут быть несовместимы с Jalm Dalvik.Смотрите это сообщение:

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 Ответ

0 голосов
/ 11 октября 2011

Если вы выполняете в JVM Dalvik, вы не сможете использовать Mockito.

Однако, если вы запускаете свои модульные тесты на настольной JVM (с такой средой тестирования, как Robolectric *)1004 * например) тогда тебе пора.В настоящее время я совмещаю их в своих проектах на Android, чтобы получить хороший эффект.

...