Подтвердить что ты не робот

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

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

AndroidTestCase ApplicationTestCase InstrumentationTestCase ActivityInstrumentationTestCase2 ActivityTestCase

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

Ответ 2

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

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

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

Class hierarchy graph drawn by myself

Ответ 3

INTRO

Чтобы прояснить ваш вопрос и совместить классы, о которых вы просите, важно ПЕРЕД деактивацией тестирования в двух категориях. Тесты 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 Обычно не используется один, он просто имеет общий код для подклассов, но в случае, если вас не устраивают 3 класса, которые наследуют от этого (см. ниже), как новый будущий компонент, к которому вы можете использовать его к моменту времени, не будет существовать класс TestCase.

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

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

Ответ 4

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

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

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