INTRO
Чтобы прояснить свой вопрос и сопоставить запрашиваемые классы, важно ПЕРЕД разделением тестирования на две категории. Тесты JUnit (теоретически простая Java) и Тесты инструментовки (которые также являются частью пакета тестирования JUnit, но позволяют вам тестировать дополнительные функции, связанные с SDK Android).
Традиционные тесты JUnit изолируют часть кода и запускают тест. Вместо этого тестирование инструментов дает доступ к компонентам Android. НО ТАКЖЕ ИНСТРУМЕНТАЦИОННЫЕ ИСПЫТАНИЯ ПРОИЗВОДЯТСЯ ИЗ ПАКЕТА JUNIT, хотя они создаются в системе еще до запуска какого-либо кода приложения, и это объясняет, почему они медленнее, кроме того, им нужен эмулятор или телефон для запуска приложения, которое вы тестируете, для запуска.
(Следуйте жирным шрифтом всем классам, которые вы упомянули, но есть и другие, которые я напишу без жирного символа).
**** ПЕРВАЯ ЧАСТЬ ** (тесты Junit) **
A) Тесты Junit, расширяющие TextCase (обычно быстрее, чем Instrumentation, и хорошо сочетаются с Mock framweworks)
AndroidTestCase : позволяет получить доступ к контексту тестируемого действия и его ресурсам; это базовый класс, расширяющий более специализированные подклассы; он идеально подходит для доступа к базам данных, данным файловой системы. Вы можете легко вызвать getContext () и получить доступ к Ресурсам, не устанавливая прямой контакт с Действиями, как будет с тестами КИП.
ApplicationTestCase , который управляет средой, в которой вы создаете текст приложения, главным образом контекстом и жизненным циклом. Другие действительно полезные расширения AndroidTestCase позволяют вам управлять загрузчиками, службами и поставщиками контента, но по какой-то причине все еще нет любого получателя Broadcast, который можно вызвать [косвенно] [1] с помощью метода InstrumentationRegistry.getTargetContext (), а затем создать экземпляр BroadCastReceiver , Также очень распространено использование другой среды Mock с Junit, которая обычно быстрее, чем InstrumentationTests
-.-.-.-.-.-.-.-.--
**** ВТОРАЯ ЧАСТЬ ** (Контрольно-измерительные приборы) **
B) Контрольно-измерительные приборы, , расширяющие TestCase
Считается, что функциональные тесты направлены больше на то, чтобы убедиться, что они хорошо работают на стороне пользователя, в части просмотра MVC. Обычно они работают медленнее, чем в другой упомянутой категории
.
InstrumentationTestCase - это базовый класс, полезный для отправки событий клавиш в пользовательский интерфейс для имитации клавиш клавиатуры QWERTY или кнопок DPAD, также он запускает действие, которое необходимо протестировать, и даже Intents
ActivityTestCase Обычно используется не один, а просто с общим кодом для подклассов, но в случае, если вас не устраивают 3 класса, которые наследуют от этого (см. Ниже), как новое будущее Компонент, который вы можете использовать, к тому времени не будет существовать выделенного класса TestCase.
ActivityInstrumentationTestCase2 - наиболее часто используемый класс Instrumentation для написания функциональных тестов, из конструктора вызывается экземпляр Activity для тестирования. По сути, вы вызываете действие с помощью getActivity () и можете практически запустить любой метод этого действия.
ActivityInstrumentationTestCase, устарела, и ActivityUnitTestCase, хотя и находится под инструментарием, больше похож на модульный тест