Пытаясь понять тестирование Android - PullRequest
2 голосов
/ 19 мая 2011

Я давний Java-разработчик с многолетним опытом работы с Java EE, Ant, Maven, модульным тестированием, макетами и т. Д. В настоящее время я использую gradle для создания приложений для Android и смотрю на их модульное тестирование.И это заставляет меня рвать на себе волосы!

Мое чтение указывает на то, что для тестирования приложения необходимо создать в нем другое приложение в каталоге test.Но я не уверен, как это встроенное приложение может видеть основные классы приложений.Я предполагаю, что Google придумал это из-за чего-то общего с манифестами.Я не уверен, почему.

Без этой встроенной системы приложений я смог запустить модульные тесты, включив тестовые классы с основными классами в APK, добавив объявления инструментария вманифест, его развертывание и запуск бегунов.Но я не хочу компилировать тестовые классы с классами приложения и включать все зависимости, так что это не совсем вариант, и я не совсем уверен в последствиях изменений в манифесте, так как не могу найти никакой документации об эффектах.

Ничто из этого не понято gradle, который следует за системой построения maven.Также обратите внимание, что Android-способ, по-видимому, заключается в том, что встроенный подпроект (тест) зависит от основного родительского проекта, что совершенно противоположно gradle и maven.

Другой вариант - отдельный тестовый проект, так что он полностью находится вне проекта приложения.Но на самом деле, я бы хотел использовать соглашение, аналогичное maven, и просто иметь тесты в отдельном каталоге вместе с манифестом в ресурсах тестирования.

Кто-нибудь успел пройти тестирование на эмуляторах, выполняющих юнит-тесты послеболее maven как структура каталогов?

Ответы [ 2 ]

2 голосов
/ 16 августа 2013

Можно попробовать Robotium . Он предоставляет множество функций для лучшего теста. Вы можете посмотреть на это здесь .

1 голос
/ 20 мая 2011

Нужно ли запускать юнит-тесты в эмуляторе? Разве это не слишком медленно? Я использовал robolectric (http://pivotal.github.com/robolectric/), который создает теневые объекты, которые работают подобно имитаторам. Я использую progaurd (http://proguard.sourceforge.net/), чтобы вырезать тесты для сборки выпуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...