unit test studio hacer example create como java android unit-testing junit android-studio

java - test - espresso android



¿Cómo ejecutar una prueba JUnit4 simple en Android Studio 1.1? (4)

Tengo un proyecto de Android que muestra "Hello World". Se creó a partir de la plantilla "Actividad en blanco" de Android Studio.

Luego agrego / creo una nueva clase java en mi paquete de aplicación (el mismo paquete que tiene mi actividad). Lo llamo Shape y añado un simple constructor.

public class Shape { public Shape(int i){ if (i==0){ throw new IllegalArgumentException("Cant have 0"); } } }

Genial. Ahora tengo una clase que no toca Android en absoluto, y quiero probarlo en unidad. ¿Qué debería hacer después?

Aquí es donde mi pregunta se detiene. A continuación voy a pasar por lo que he intentado.

Tenga en cuenta que realmente nunca he probado antes en Android o Java. Disculpe por los errores "novatos".

  1. Mientras que en Shape.java voy a "Navegar"> "Probar"
  2. Presiona enter para seleccionar "Crear nueva prueba"
  3. Obtén esta ventana emergente, y selecciona JUNIT4.
  1. Luego presiono el botón de reparación para arreglar la biblioteca que no se encuentra
  2. Me sale este popup
  1. No estoy realmente seguro de qué seleccionar, así que selecciono el valor predeterminado / resaltado.
  2. Yo escribo mi prueba

    package com.eghdk.getjunit4towork; import org.junit.Test; import static org.junit.Assert.*; public class ShapeTest { @Test(expected = IllegalArgumentException.class) public void testShapeWithInvalidArg() { new Shape(0); } }

  3. En este punto, no estoy muy seguro de cómo ejecutar mis pruebas, pero trate de hacer esto:

  4. Me sale estos errores cuando corro

    Error: (3, 17) Gradle: error: el paquete org.junit no existe
    Error: (5, 24) Gradle: error: el paquete org.junit no existe
    Error: (8, 6) Gradle: error: no se puede encontrar la clase de símbolo Prueba


Desde Android Studio 1.1, hay soporte de prueba unitaria (experimental). Un par de citas de esa página:

Tendrá que especificar sus dependencias de prueba en el archivo build.gradle de su módulo de Android. Por ejemplo:

dependencies { testCompile ''junit:junit:4.12'' testCompile "org.mockito:mockito-core:1.9.5" }

Para utilizar el soporte de pruebas unitarias en AS, debe realizar los siguientes pasos:

  1. Actualice build.gradle para usar la versión 1.1.0-rc1 o posterior del complemento gradle de Android (ya sea manualmente en el archivo build.gradle o en la interfaz de usuario en Archivo> Estructura del proyecto)

  2. Agregue las dependencias de prueba necesarias a app / build.gradle (vea arriba).

  3. Habilite la función de prueba de la unidad en Configuración> Gradle> Experimental.

  4. Sincroniza tu proyecto.

  5. Abra la ventana de herramientas "Construir variantes" (a la izquierda) y cambie el artefacto de prueba a "Pruebas de unidad".

  6. Cree un directorio para su código fuente de prueba, es decir, src / test / java. Puede hacerlo desde la línea de comandos o utilizando la vista Proyecto en la ventana de la herramienta Proyecto. El nuevo directorio debe estar resaltado en verde en este punto. Nota: los nombres de los directorios de origen de prueba están determinados por el complemento gradle en función de una convención.

  7. Crea tu prueba. Puede hacerlo abriendo una clase, haciendo clic con el botón derecho en su nombre y seleccionando "Ir a> Probar". Añadir algunos casos de prueba.
  8. Haga clic derecho en su nueva clase de prueba o método y seleccione "Ejecutar ...".
  9. (Opcional) Puede reducir el tiempo de compilación utilizando Gradle directamente. Para hacer esto, vaya al menú Ejecutar y seleccione "Editar configuraciones". Allí, encuentre la plantilla JUnit predeterminada, elimine el paso "Hacer" antes del inicio y agregue un paso "Hacer consciente de Gradle" (deje el nombre de la tarea vacío).

Es importante saber que existen dos tipos de pruebas: prueba de androidTest y test simple.

  • androidTest es principalmente para las pruebas que ejecuta en un emulador o dispositivo, como las pruebas de instrumentación. Desde la línea de comandos, usa ./gradlew connectedCheck para ejecutar estos.
  • test es para las pruebas que no desea ejecutar en un dispositivo, como la prueba de unidad que escribió. Ejecuta ./gradlew test para ejecutar estas pruebas.

Como se indica en la cita, cambia entre la test de Android y la test en Android Studio cambiando el artefacto de prueba.

Naturalmente, se prefiere no ejecutar pruebas en un dispositivo o emulador, ya que esto acelera mucho el proceso de prueba. Con el nuevo soporte de pruebas unitarias experimentales, usted obtiene acceso a las API de Android sin un dispositivo. Esto te permite mover más pruebas de prueba de androidTest a test .


Hoy en día, Android Studio (versión actual 1.4) tiene soporte completo para pruebas de unidad sin ninguna solución. Tal como se sugiere en el ExampleUnitTest generado automáticamente:

To work on unit tests, switch the Test Artifact in the Build Variants view.


Ir a la configuración, luego construir herramientas, luego gradle y luego experimental. En experimental, desmarque habilitar todos los artefactos de prueba. Eso es todo juego


Para Android Studio 1.2 o superior, incluyo esta respuesta ya que esta es una de las primeras clasificaciones en google y es un tutorial excelente y MUY fácil de seguir sobre cómo establecer pruebas unitarias con Android Studio. Este es el enlace: https://io2015codelabs.appspot.com/codelabs/android-studio-testing#1

Después de perder 2 horas intentando hacer la prueba, finalmente lo hice con el enlace anterior, espero que sea tan útil para usted como para mí.