¿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?

Esta entrada de blog lo explica mejor. Básicamente, es el siguiente:

Tabla de pruebas

  1. Pequeño: esta prueba no interactúa con ningún sistema de archivos o red.
  2. Medio: Accede a los sistemas de archivos en el cuadro que está ejecutando pruebas.
  3. 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.

  • Android: Escribir casos de prueba para Fragmentos
  • La API de Android Drive startResolutionForResult devuelve RESULT_CANCELLED
  • Cómo agregar carpetas de prueba a un antiguo proyecto de Android Studio
  • Android BluetoothAdapter Mocking
  • Prácticas recomendadas para la prueba de unidades de Android?
  • Cómo probar el archivo java generado automáticamente usando JUnit para mi AIDL
  • Método getActivity () que bloquea indefinidamente mientras que la prueba de la unidad
  • Uso de una carpeta de recursos en el proyecto de prueba para datos de cadena de prueba
  • Mockito: ¿Cómo uso getString con mockito?
  • ¿Cómo crear clases de prueba que se pueden usar tanto en las pruebas de Android como en las de unidad?
  • Android prueba testPreconditions
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.