studio programacion móviles libro desarrollo curso aplicaciones android testing

programacion - Usando Android Test Framework



programacion android pdf 2018 (4)

Por favor, vea el gráfico de jerarquía de clases dibujado por mí mismo usando PowerPoint.

La respuesta aceptada da suficiente información en palabras. Solo para dejarlo en claro usando el gráfico :)

Para el InstrumentationTestCase @Zorb preguntado, es una clase para padres para ActivityTestCase, entre otros. Le permite llamar al método getInstrumentation para obtener una instancia de instrumentación para que pueda operar la aplicación, la actividad, etc.

Android proporciona varios paquetes para probar como

AndroidTestCase ApplicationTestCase InstrumentationTestCase ActivityInstrumentationTestCase2 ActivityTestCase

Necesito saber cómo decidir qué paquete es el más adecuado para probar mi aplicación. Parte de la información se proporciona en este enlace

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

Pero necesito más claridad sobre esto ...


Encontré este tutorial de droidcon 09 para ser realmente informativo. Completo con ejemplos de códigos fuente de trabajo descargables.

Editar: El enlace parece estar muerto, como se señala en los comentarios.

Realiza una prueba de conversión de temperatura de Celcius a Fahrenheit, primero con ActivityInstrumentationTestCase2, TestCase y AndroidTestCase.


TestCase : antiguo caso de prueba de JUnit. Se puede extender para probar clases de utilidad que no están vinculadas al marco de Android.

AndroidTestCase : extiende el TestCase de JUnit. Es una clase de prueba más ligera en comparación con ActivityTestCase. No necesita iniciar una actividad para ejecutarlo. Su método getContext () le permite obtener un contexto insertado si lo necesita. Como puede obtener un contexto de esta clase, puede inflar sus objetos de interfaz de usuario para probar sus comportamientos.

ActivityInstrumentationTestCase2 : es la versión más nueva de ActivityInstrumentationTestCase. ActivityInstrumentationTestCase está en desuso en Android SDK 1.5. Es una clase de prueba más pesada en comparación con AndroidTestCase. Proporciona UI y pruebas funcionales para una sola actividad. Puede obtener una actividad inyectada que está probando llamando a su método getActivity (). La actividad que se prueba se inicia y finaliza antes y después de cada prueba.

ActivityUnitTestCase : le da a la actividad probada un entorno aislado. Al usarlo para probar una actividad, la actividad no está asociada al sistema. Esto le brinda más control sobre el tipo de entorno en el que desea que se pruebe su actividad.

ApplicationTestCase : proporciona pruebas para las clases de aplicaciones. Se puede usar para probar el ciclo de vida de una aplicación.

InstrumentationTestRunner : el corredor que ejecuta los casos de prueba de Android.

Acabo de encontrar esto ... Espero que esto ayude a otros ... Si desea obtener más detalles sobre cuándo y cómo usarlo, consulte la aplicación de prueba APIDemos en el directorio de ejemplos dentro del SDK de Android.


INTRO

Para aclarar su pregunta y ubicar las clases que está solicitando, es esencial ANTES de dividir las pruebas en dos categorías. Pruebas JUnit (en teoría, Java simple) y pruebas de Instrumentación (que también son parte del paquete de prueba JUnit, pero le permiten probar más funcionalidades relacionadas con SDK Android).

Las pruebas JUnit tradicionales aíslan una sección de código y ejecutan una prueba. Las pruebas de instrumentación acceden en su lugar de manera más inclusiva a los componentes de Android. PERO TAMBIÉN LAS PRUEBAS DE INSTRUMENTACIÓN SE DERIVAN DEL PAQUETE JUNIT aunque se crean instancias en el sistema incluso antes de que se ejecute cualquier código de aplicación y esto explica por qué son más lentos, además necesitan un emulador o teléfono que ejecute la aplicación que está probando para ejecutarse.

(Sigue en negrita toda la clase que mencionas, pero hay otras más usadas que escribiré sin el carácter en negrita).

**** PRIMERA PARTE ** (pruebas de Junit) **

A) Pruebas Junit que extienden TextCase (generalmente son más rápidas que Instrumentation, y se combinan bien con Mock framweworks)

AndroidTestCase : permite tener acceso al contexto de la actividad que está probando y sus recursos, es una clase base que amplía las subclases más especializadas, es ideal para acceder a las bases de datos, a los datos del sistema de archivos. Puede llamar fácilmente a getContext () y acceder a los recursos sin establecer un contacto directo con las actividades, como lo será con las pruebas de instrumentación.

ApplicationTestCase que controla el entorno en el que se envía el texto a la aplicación, principalmente el contexto y el ciclo de vida. Otras extensiones realmente útiles de AndroidTestCase le permiten controlar Cargadores, Servicios y Proveedores de Contenido, pero por alguna razón todavía no hay ningún receptor de Difusión que pueda llamarlo [indirectamente] [1] con el método InstrumentationRegistry.getTargetContext () y luego instanciar BroadCastReceiver . También es muy común usar un framework Mock diferente con Junit que generalmente es más rápido que InstrumentationTests

-.-.-.-.-.-.-.-.--

**** SEGUNDA PARTE ** (Pruebas de instrumentación) **

B) Pruebas de instrumentación, que extienden TestCase Se consideran pruebas funcionales, se enfocan más para asegurar que funcionen bien con el lado del usuario, la parte Vista de MVC. Suelen ser más lentas que la otra categoría mencionada

InstrumentationTestCase es una clase base útil para enviar eventos clave a la interfaz de usuario para simular teclas de teclado QWERTY o botones DPAD, también inicia la actividad que debe probarse e, incluso, intentos.

ActivityTestCase Usualmente no se usa solo, solo tiene un código común para las subclases, pero en el caso de que no esté satisfecho con las 3 clases que heredan de este (vea más abajo) como un nuevo componente futuro, puede usarlo para cuando quiera. no existe una clase TestCase dedicada.

ActivityInstrumentationTestCase2 es la clase de Instrumentación más utilizada para escribir pruebas funcionales; desde el constructor se invoca la instancia de la Actividad a probar. Básicamente llama a la actividad con getActivity () y puede ejecutar prácticamente cualquier método de esa Actividad.

ActivityInstrumentationTestCase, está en desuso, y ActivityUnitTestCase que, aunque está bajo la instrumentación, es más similar a una prueba unitaria