Cómo probar la aplicación para Android usando espresso
Como desarrollador, usted ya conoce la importancia de las pruebas de escritura para su código. Esto es tan cierto para el desarrollo de aplicaciones de Android como lo es para cualquier otro tipo de desarrollo. Por suerte, Android hace que sea fácil agregar pruebas para su aplicación.
Conteúdo
La siguiente información le llevará a través de los conceptos básicos de la adición de pruebas para su aplicación Android usando Espresso. Espresso es una biblioteca que se incluye con el SDK de Android para hacer interfaces de pruebas de usuario de Android más simple.
Sólo asegúrese de que su aplicación está utilizando Gradle 2.1.1 o posterior con herramientas de construcción Android 21.1.2 o posterior.
Para agregar una prueba Espresso a su aplicación, usted tendrá que:
Modifique su script de construcción
Escribe la prueba
Ejecute la prueba
Cómo modificar su construcción
Abre el build.gradle presentar para su aplicación. Si su aplicación tiene múltiples módulos, usted querrá abrir el build.gradle presentar en su módulo de aplicación, no en el módulo de raíz. Así que para la aplicación de Silent Mode Toggle, abriría SilentModeToggle / build.gradle.
Agregue la siguiente dependencia a la sección de las dependencias de su build.gradle archivo:
dependencias {# 133-// Prueba dependenciasandroidTestCompile 'com.android.support.test.espresso: espresso-core: 2.0'}
Esto le dice a Android Studio para incluir la biblioteca Espresso en sus dependencias de prueba. La biblioteca Espresso no se construirá en el apk que usted envía, sino que se incluirá en el apk prueba para que sus pruebas pueden utilizarlo.
A continuación, añada lo siguiente a su defaultConfig:
defaultConfig {# 133-// los prueba corredor a usar cuando corriendo el pruebas.testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"}
Esto le dice que Android Instrumentación utilizar para ejecutar las pruebas. Usted no necesita saber mucho acerca de la instrumentación, aparte de que este es el que tiene que utilizar cada vez que desee ejecutar pruebas Espresso.
Eso es todo lo que necesita hacer para añadir soporte para Espresso. A continuación, tendrá que escribir la prueba real.
Cómo escribir la prueba
Para agregar una prueba para Android, que necesita para asegurarse de que lo pones en el lugar correcto. Abre tu src directorio en el Android Studio y crear un nuevo directorio llamado androidTest si no existe ya. Dentro de ese directorio, cree un directorio llamado java.
Dentro del directorio que acaba de crear, crear un nuevo archivo llamado SilentModeToggleEspressoTest.java. En realidad puede nombrar como quieras, sólo asegúrese de que termina en "Test.java".
Ponga lo siguiente en su archivo de prueba:
public class SilentModeToggleEspressoTestextends ActivityInstrumentationTestCase2{SilentModeToggleEspressoTest público () {super (MainActivity.class) -}}
Esto crea una nueva clase llamada SilentModeToggleEspressoTest. Se extiende ActivityInstrumentationTestCase2, que vamos a usar para escribir la mayor parte de las pruebas de su aplicación. ActivityInstrumentationTestCase2 está parametrizado en el tipo de actividad que desea probar. Para la aplicación SilentModeToggle, la actividad principal de la aplicación se llama, muy apropiadamente, Actividad principal.
Su clase de prueba debe tener un constructor por defecto, y en ese constructor por defecto que va a llamar al constructor de superclase 'con la clase de la actividad se está probando. Lo que se ha escrito hasta ahora, básicamente, se-pegar copiar para casi todas las pruebas Android alguna vez escribes.
Antes de que usted puede escribir su ensayo real, tendrás que configurarlo. Para ello, agregue el método siguiente a su clase de prueba:
VoidOverridepublic setup () throws Exception {super.setUp () - getActivity () -}
Para probar una actividad utilizando Espresso, primero debe crear la actividad que se está probando. Esto se hace llamando getActivity (), que crea y pone en marcha la actividad para la que si no existe ya. Esto se hace por encima de la configurar() método para la clase, que se ejecuta antes de cada una de las pruebas se ejecutan.
Ahora, por fin, usted puede escribir su ensayo. Agregue el método siguiente a la clase:
public void testPhoneIconIsDisplayed () {// Cuando la vista phone_icon está disponible, // comprobar que está displayed.onView (withId (R.id.phone_icon)) cheque (los partidos (isDisplayed ())) -.}
Usted tendrá que importar el OnView, withId, comprobar, partidos, y se visualiza métodos. Android Studio ofrece para ayudarle con las importaciones estáticas necesarias.
Pruebas Espresso están diseñados para ser muy fácil de leer. Como se puede ver aquí, esta prueba está a la espera hasta que la vista con ID R.id.phone_icon está disponible, y una vez que es, es la comprobación de que se muestra la vista.
El siguiente paso es ejecutar la prueba.
Cómo ejecutar la prueba
En primer lugar, la puesta en marcha de un emulador o conectar el teléfono al ordenador mediante USB.
Una vez que el dispositivo está conectado y funcionando, a la derecha; haga clic en el java directorio bajo androidTest, y luego seleccione Ejecutar todas las pruebas (con el icono de Android):
Si la prueba se ejecuta correctamente, debería ver algo como lo siguiente:
¿Por qué son importantes las pruebas?
¿Por qué pasar por todo este esfuerzo sólo para añadir una prueba simple? Se podría pensar que no parece vale la pena probar dicha funcionalidad básica.
La aplicación de Silent Mode Toggle es bastante simple que tal vez un programador perezoso podría justificar saltarse pruebas. Puede ser.
Si agrega un par de pruebas para añadir, eliminar y editar tareas para esa aplicación, usted tiene la tranquilidad de saber que cada vez que hagas un cambio, sus pruebas automatizadas presionen ningún errores significativos que usted introduce.
¿De verdad quiere volver a probar todas las funcionalidades de su aplicación en los teléfonos, tabletas, relojes y televisores, y luego hacer todo de nuevo en los dispositivos más antiguos para probar la compatibilidad hacia atrás? Agregando pruebas pueden hacerse cargo de la mayor parte de esa dificultad para usted.
Acerca de las pruebas Espresso
Pruebas Espresso se escriben con el siguiente formato:
OnView (Matcher) .Realizar (accionver) .Revise (ViewAssertion)
La hoja de trucos siguiente, cortesía del proyecto Espresso 2.0, es una herramienta útil para la escritura de pruebas Espresso. Enumera la sintaxis general para las pruebas de espresso, y también se enumeran los tipos más comunes de comparadores: Accionver y ViewAssertion.
Una forma rápida de escribir pruebas Espresso es tomar ventaja de la funcionalidad de autocompletado de Android Studio. Si usted sabe que la mayoría de los comparadores están en el ViewMatchers clase, la mayoría de las acciones de vista están en ViewActions, y la mayoría de las afirmaciones de vista están en ViewAssertions, entonces usted puede utilizar la función Autocompletar para encontrar el matcher derecha:
Vamos a añadir una más
Así que con eso en mente, vamos a añadir una prueba más. Agregue las líneas en negrita a su clase de prueba:
public class SilentModeToggleEspressoTestextends ActivityInstrumentationTestCase2{AudioManager audioManager-# 133- @ Overridepublic void setup () throws Exception {super.setUp () -Actividad actividad = getActivity () - // Recuperar un AudioManager de el actividadAudioManager = (AudioManager)activity.getSystemService (Context.AUDIO_SERVICE) -// Hacer Por supuesto el campanero modo es Reiniciar a normalaudioManager.setRingerMode (AudioManager.RINGER_MODE_NORMAL) -} # 133-público vacío testCanToggleIcon () {// Cuando el phone_icon vista es disponible, clic ello. OnView (withId (R.id.phone_icon)) realizar (haga clic en ()) -// entonces afirmar ese el teléfono es ahora en silencio modo.assertTrue (RingerHelper.isPhoneSilent (AudioManager)) -}}
Esta prueba detecta el botón de activación y hace clic en él, a continuación, comprueba que el modo silencioso de la aplicación fue activada. los configurar() código asegura que el modo de timbre se restablece a la normalidad antes de que las pruebas de funcionamiento. Ahora, cada vez que hagas un cambio en su aplicación, sólo tiene que ejecutar estos casos de prueba para tener la confianza de que no se ha roto nada importante.
Si tiene un servidor de integración continua, todo lo que tiene que hacer es ejecutar el connectedCheck objetivo en Gradle para ejecutar los casos de prueba con cada commit que realice. Si usted no tiene un servidor de integración continua, sin embargo, tal vez ahora es un buen momento para mirar en uno! Echa un vistazo a travis-ci.org para una buena opción.
Prueba de aplicaciones en Android es un tema profundo y complicado, pero ahora usted debe tener todo lo necesario para empezar a probar sus aplicaciones!
Si desea gustado conseguir más avanzada, usted puede estar interesado en algunos de los siguientes recursos:
Usar Cuchara para poner a prueba en el dispositivo múltiple.
Trate Tenedor para ejecutar pruebas de forma rápida a través de múltiples dispositivos.
Trate travis-ci o Jenkins para un servidor de integración continua.
Ver introducción de Michael Bailey a Prueba de Android en YouTube.