Intereting Posts
Глобальная переменная Android Прокрутка вниз в recyclerview с несколькими типами просмотра Android Studio: как выбрать, что импортировать из VCS RadioGroup с переключателями в разных макетах Android: обрезать изображение после его съемки с камерой с фиксированным соотношением сторон Что нужно использовать в качестве полезной нагрузки разработчика в API-интерфейсах Google In-App Billing? Можно ли напрямую выполнить замену строк в XML-файлах ресурсов Android? Обработайте клики Bluetooth-гарнитуры (ACTION_VOICE_COMMAND и ACTION_WEB_SEARCH) на Android Android: создание видео эскизов из видео URI Изменить тему проекта в Android Studio? Инструмент Android Localization Android для цикла и задержки не синхронный Текст уведомления NotificationCompat, который не отображается при обновлении уведомления Должно ли мое приложение Android по умолчанию упростить или традиционный китайский? Как исправить множество закругленных углов в Android для Relative или layout?

Использование тестовой платформы Android

Android предлагает различные пакеты для тестирования, такие как

AndroidTestCase ApplicationTestCase InstrumentationTestCase ActivityInstrumentationTestCase2 ActivityTestCase

Мне нужно знать, как решить, какой пакет лучше всего подходит для тестирования моего приложения. Некоторая информация предоставлена ​​в этой ссылке

Http: //developer.android.com/reference/android/test/package-summary.html

Но мне нужно больше ясности в этом …

Solutions Collecting From Web of "Использование тестовой платформы Android"

TestCaseобычная старая тестовая версия JUnit. Он может быть расширен для тестирования классов утилиты, которые не привязаны к платформе Android.

AndroidTestCase – расширяет тестовую систему JUnit. Это более легкий тестовый класс по сравнению с ActivityTestCase. Ему не нужно запускать действие для его запуска. Его метод getContext () позволяет получить инъецируемый контекст, если он вам нужен. Поскольку вы можете получить контекст из этого класса, вы можете раздуть свои объекты пользовательского интерфейса, чтобы проверить их поведение.

ActivityInstrumentationTestCase2 – это новая версия ActivityInstrumentationTestCase. ActivityInstrumentationTestCase устарела в Android SDK 1.5. Это более тяжелый класс тестирования по сравнению с AndroidTestCase. Он обеспечивает интерфейс и функциональное тестирование для одного действия. Вы можете получить введенную активность, которую вы тестируете, вызвав метод getActivity (). Проверяемая активность запускается и завершается до и после каждого теста.

ActivityUnitTestCase – дает тестируемую активность изолированной среде. При использовании для проверки активности активность не привязана к системе. Это дает вам больше контроля над тем, в какой среде вы хотите проверить свою активность.

ApplicationTestCase – он обеспечивает тестирование классов приложений. Его можно использовать для проверки жизненного цикла приложения.

InstrumentationTestRunner – бегун, который запускает тесты для Android.

Я просто нашел это … Надеюсь, это поможет другим … Если вам нужна дополнительная информация, например, когда и как использовать, см. Приложение APIDemos test в каталоге samples в SDK android.

Посмотрите диаграмму иерархии классов, сделанную мной, используя PowerPoint.

Принятый ответ дает достаточно информации в словах. Я просто объясню, используя график 🙂

Для запроса InstrumentationTestCase @Zorb он является родительским классом для ActivityTestCase среди других. Это позволяет вам вызвать метод getInstrumentation, чтобы получить экземпляр инструментария, чтобы вы могли управлять приложением, активностью и т. Д.

График иерархии классов, составленный мной

ВСТУПЛЕНИЕ

Чтобы прояснить свой вопрос и совместить классы, о которых вы просите, важно ПЕРЕД деактивировать тестирование в двух категориях. Тесты JUnit (теоретически простые Java) и контрольные тесты (которые также входят в тестовый пакет JUnit, но позволяют тестировать дополнительные функции, связанные с SDK Android).

Традиционные тесты JUnit изолируют раздел кода и запускают тест. Инструментарий тестирует доступ, а не все компоненты Android. НО ТАКЖЕ ИСПЫТАНИЯ ИСПЫТАНИЙ ОТКАЗЫВАЮТСЯ ОТ ПАКЕТА JUNIT, хотя они создаются в системе еще до того, как будет запущен какой-либо код приложения, и это объясняет, почему они медленнее, кроме того, им нужен эмулятор или телефон, в которых выполняется приложение, которое вы тестируете, чтобы его выполняли.

(Следуйте в Bold всем классом, о котором вы упоминаете, но есть и другие, более используемые, которые я напишу без смелого символа).

**** ПЕРВАЯ ЧАСТЬ ** (тесты Junit) **

A) Тесты Junit, которые расширяют TextCase (обычно быстрее, чем Instrumentation, и хорошо сочетаются с макетными работами Mock)

AndroidTestCase : он позволяет получить доступ к Контексту тестируемой активности и их ресурсов, это базовый класс, который расширяет более специализированные подклассы, он идеально подходит для доступа к базам данных, данным файловой системы. Вы можете легко вызвать getContext () и получить доступ к ресурсам без установления прямого контакта с действиями, как это будет с инструментальными тестами.

ApplicationTestCase, который управляет средой, где вы текстовое приложение, в основном контекст и жизненный цикл. Другие действительно полезные расширения AndroidTestCase позволяют управлять загрузчиками, службами и поставщиками содержимого, но по какой-то причине все еще не используется широковещательный приемник, который вы можете называть его [косвенно] [1] с помощью метода InstrumentationRegistry.getTargetContext (), а затем создавая экземпляр BroadCastReceiver , Также очень часто используется разная структура Mock с Junit, которая обычно быстрее, чем InstrumentationTests

-.-.-.-.-.-.-.-.–

**** ВТОРАЯ ЧАСТЬ ** (КИПиА) **

B) Тесты на инструментальные средства, расширяющие TestCase, считаются функциональными тестами, сфокусированными больше, чтобы гарантировать, что они хорошо работают с пользовательской стороной, частью просмотра MVC. Они, как правило, медленнее, чем другие упомянутые категории

InstrumentationTestCase – базовый класс, полезный для отправки ключевых событий в пользовательский интерфейс для имитации QWERTY-клавиш клавиатуры или кнопок DPAD, а также запускает активность, которая должна быть проверена, и даже намерения

ActivityTestCase Обычно не используется в одиночку, он просто имеет общий код для подклассов, но в случае, если вы не удовлетворены тремя классами, которые наследуются от этого (см. Ниже), как новый будущий компонент, который вы можете использовать его к моменту времени, Не существует класса TestCase.

ActivityInstrumentationTestCase2 является наиболее используемым классом Instrumentation для написания функциональных тестов, из конструктора вызывается экземпляр Activity для тестирования. В основном вы вызываете активность с помощью getActivity (), и вы можете запланировать какой-либо метод этой активности.

ActivityInstrumentationTestCase, устарела, и ActivityUnitTestCase, которая, хотя находится под Инструментами, больше похожа на единичный тест

Я нашел этот учебник от droidcon 09 действительно информативным. В комплекте с загружаемыми примерами исходного кода.

Изменить: ссылка кажется мертвой, как указано в комментариях.

Он проходит через создание тестового преобразователя температуры по Фаренгейту в Celcius, сначала используя ActivityInstrumentationTestCase2, TestCase и AndroidTestCase.