Android
Robolectric
Buscar..
Introducción
La prueba unitaria consiste en tomar un código y probarlo de forma independiente sin otras dependencias o partes del sistema en ejecución (por ejemplo, la base de datos).
Robolectric es un marco de prueba unitaria que destruye el frasco del SDK de Android para que puedas probar el desarrollo de tu aplicación Android. Las pruebas se ejecutan dentro de la JVM en su estación de trabajo en segundos.
Combinarlos a ambos le permite ejecutar pruebas rápidas en el JVN aún utilizando las API de Android.
Prueba robolectrica
@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {
@Test
public void clickingButton_shouldChangeResultsViewText() throws Exception {
MyActivity activity = Robolectric.setupActivity(MyActivity.class);
Button button = (Button) activity.findViewById(R.id.button);
TextView results = (TextView) activity.findViewById(R.id.results);
button.performClick();
assertThat(results.getText().toString()).isEqualTo("Robolectric Rocks!");
}
}
Configuración
Para configurar robolectric, agregue la anotación @Config
a la clase o método de prueba.
Ejecutar con clase de aplicación personalizada
@RunWith(RobolectricTestRunner.class)
@Config(application = MyApplication.class)
public final class MyTest {
}
Establecer objetivo SDK
@RunWith(RobolectricTestRunner.class)
@Config(sdk = Build.VERSION_CODES.LOLLIPOP)
public final class MyTest {
}
Ejecutar con manifiesto personalizado
Cuando se especifique, robolectric se verá relativo al directorio actual. El valor predeterminado esAndroidManifest.xml
Los recursos y los activos se cargarán en relación con el manifiesto.
@RunWith(RobolectricTestRunner.class)
@Config(manifest = "path/AndroidManifest.xml")
public final class MyTest {
}
Usar calificadores
Posibles calificadores se pueden encontrar en documentos de Android .@RunWith(RobolectricTestRunner.class)
public final class MyTest {
@Config(qualifiers = "sw600dp")
public void testForTablet() {
}
}
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow