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".
- Mientras que en Shape.java voy a "Navegar"> "Probar"
- Presiona enter para seleccionar "Crear nueva prueba"
- Obtén esta ventana emergente, y selecciona JUNIT4.
- Luego presiono el botón de reparación para arreglar la biblioteca que no se encuentra
- Me sale este popup
- No estoy realmente seguro de qué seleccionar, así que selecciono el valor predeterminado / resaltado.
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); } }
En este punto, no estoy muy seguro de cómo ejecutar mis pruebas, pero trate de hacer esto:
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:
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)
Agregue las dependencias de prueba necesarias a app / build.gradle (vea arriba).
Habilite la función de prueba de la unidad en Configuración> Gradle> Experimental.
Sincroniza tu proyecto.
Abra la ventana de herramientas "Construir variantes" (a la izquierda) y cambie el artefacto de prueba a "Pruebas de unidad".
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.
- 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.
- Haga clic derecho en su nueva clase de prueba o método y seleccione "Ejecutar ...".
- (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
.
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í.