¿Cuál es el propósito de las anotaciones de @SmallTest, @MediumTest y @LargeTest en Android?
Soy nuevo en Android y he visto código de ejemplo utilizando estas anotaciones. Por ejemplo:
@SmallTest public void testStuff() { TouchUtils.tapView(this, anEditTextView); sendKeys("HELP SPACE ME PERIOD"); assertEquals("help me.", anEditTextView.getText().toString()); }
¿Qué hace esta anotación?
- La manera más rápida de crear una actividad simulada para probar
- Cómo crear un módulo de prueba para probar una biblioteca de Android en IntelliJ IDEA
- Unity C # scrollable GUI.BOX no funciona en android
- Cómo burlar un objeto de etiqueta NFC de Android para las pruebas de unidad
- Vinculación de Android y prueba JUnit de notificación
- Android Base64 codificar y decodificar return null en Unit Test
- Android Espresso Testing: ActivityTestRule no cierra la actividad
- Cómo realizar una prueba de unidad
- Prueba de una clase Fragment en aislamiento usando Mockito
- VerifyError al ejecutar jUnit Test en Android 1.6
- Habilitar ubicaciones de Mock en Android Marshmallow
- Junit.framework.AssertionFailedError: Excepción en constructor: (java.lang.NoClassDefFoundError)
- ¿Diferencia entre la prueba de instrumentación de Android y la prueba de unidad en Android Studio?
Esta entrada de blog lo explica mejor. Básicamente, es el siguiente:
- Pequeño: esta prueba no interactúa con ningún sistema de archivos o red.
- Medio: Accede a los sistemas de archivos en el cuadro que está ejecutando pruebas.
- Large: Accede a sistemas de archivos externos, redes, etc.
Según el blog de desarrolladores de Android , una prueba pequeña debería tomar <100 ms, una prueba media <2s y una prueba grande <120.
Vea esta página (busque "@SmallTest") sobre cómo especificar qué pruebas se ejecutan.
Como una adición a la respuesta de Davidann y principalmente Eric Palakovich Carr's question in the comment
:
En el contexto del código anterior, ¿realmente hace algo excepto dejar una nota para otros desarrolladores? ¿Impone algo? ¿Hay alguna herramienta que utilice esta anotación? ¿Cuál es su propósito en el desarrollo de Android?
De la documentación de AndroidJUnitRunner :
Ejecutar un tamaño de prueba específico, es decir, anotado con SmallTest o MediumTest o LargeTest :
Adb shell am instrumento -w -e tamaño [pequeño | medio | grande] com.android.foo/android.support.test.runner.AndroidJUnitRunner
También puede configurar los parámetros a través de gradle:
android { ... defaultConfig { ... testInstrumentationRunnerArgument 'size', 'Large' } }
android { ... defaultConfig { ... testInstrumentationRunnerArgument 'size', 'Large' } }
Vea esta entrada del blog para más detalles.
- Error de instalación: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED?
- ¿Cómo se estila la barra de herramientas appcompat-v7 como Theme.AppCompat.Light.DarkActionBar?