2010-01-12 19 views

Respuesta

46

TestCase - Llanura test JUnit de edad. Se puede extender para probar clases de utilidad que no están vinculadas al marco de Android.

AndroidTestCase - Se extiende TestCase de JUnit. Es una clase de prueba más liviana comparada con ActivityTestCase. No es necesario que inicie una actividad para ejecutarlo. Su método getContext() le permite obtener un contexto insertado si lo necesita. Dado que puede obtener un contexto de esta clase , puede inflar sus objetos UI para probar su comportamiento.

ActivityInstrumentationTestCase2 - Es la versión más reciente 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 - Da la actividad probado un aislado entorno . Al usarlo para probar una actividad , la actividad no se adjunta al sistema. Esto le da más control sobre qué tipo de ambiente que desea que su actividad sea probado en

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 se ejecuta la prueba de Android casos.

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

+4

¿qué pasa con InstrumentationTestCase? – Zorb

+0

ActivityUnitTestCase no puede ayudar más para API24 – sunnyleevip

1

Encontré this 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.

Desarrolla un convertidor de temperatura de Celcius a Fahrenheit primero con ActivityInstrumentationTestCase2, TestCase y AndroidTestCase.

+0

El enlace al tutorial ya no es válido. – powder366

8

Consulte el gráfico de jerarquía de clases elaborado por mí mismo utilizando PowerPoint.

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

Para InstrumentationTestCase @Zorb preguntado, es 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.

Class hierarchy graph drawn by myself

2

INTRO

Para aclarar su pregunta y colocamos las clases que está pidiendo, es esencial antes de dividir la prueba en dos categorías. pruebas JUnit (en teoría de Java natural) y Instrumentación tests (que también son parte del paquete de prueba unitaria, pero le permiten probar más funcionalidades relacionadas SDK de 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 JUnit) **

A) pruebas JUnit que se extienden textcase (son generalmente más rápido que Instrumentación, y combinar bien con framweworks Mock)

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 bases de datos, 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 donde se envía el texto de 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 el uso de diferentes marcos Mock con Junit que es generalmente más rápido que InstrumentationTests

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

**** segunda parte ** (**) Instrumentación pruebas

B)pruebas de instrumentación, que se extienden TestCase se consideran pruebas funcionales, se centraron más para asegurar que funcionan bien con el lado del usuario, la vista parte de MVC . Suelen ser más lentos que la otra categoría mencionada

InstrumentationTestCase es una clase base útil para enviar eventos clave de la interfaz de usuario para simular las teclas del teclado QWERTY o DPAD botones, también se pone en marcha la actividad que tiene que ser probado, e incluso Intentos

ActivityTestCase general se 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 heredadas de este (ver a continuación) como un nuevo componente futuro, puede usarlo por el momento no existirá un TestCase clase 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, es obsoleto, y ActivityUnitTestCase que aunque está bajo la instrumentación es más similar a una prueba de unidad

+1

Encontré esto una respuesta útil. Es una lástima que aquellos que son "tarde a la fiesta" rara vez se eleven. –

+0

gracias por su apreciación Robert, no importa qué importa es que la comunidad que quiere saber más sobre el desplazamiento podría beneficiarse. La reputación es relativa y escribir publicaciones estructuradas ayuda al autor a aprender – trocchietto

Cuestiones relacionadas