Android: cómo obtener el contexto cuando se prueba con ActivityInstrumentationTestCase2?
Estoy ejecutando una prueba junit en Android que extiende ActivityInstrumentationTestCase2. Estoy usando esto para poner en marcha una actividad.
La actividad utiliza una subclase del objeto de aplicación para obtener algunos parámetros. Obtengo el objeto de aplicación desde el contexto.
- Cómo probar menú en Android con Robolectric
- Cómo generar informes de pruebas de Android en HTML automáticamente
- Android prueba: cómo comprobar un diálogo se muestra en la pantalla? (mediante ActivityInstrumentationTestCase2)
- Unidad Método de prueba que no contiene lambda expresión Android Studio
- Unidad de prueba Java clase que carga la biblioteca nativa
Desafortunadamente, ActivityInstrumentationTestCase2 no proporciona acceso al contexto. ¿Hay alguna manera de acceder al contexto antes de obtener la actividad?
- Prueba de la unidad de Android con AsyncTask y la solución de actualizaciones de interfaz de usuario
- ¿Cómo puedo transferir un dispositivo de prueba de base de datos al dispositivo desde mi aplicación de prueba de unidad
- Robolectric: 3.3.2 - Ningún fichero de manifiesto: build \ intermedios \ manifestos \ lleno \ debug \ src \ main \ AndroidManifest.xml
- Acceso al contexto de la aplicación desde TestSuite en Setup () antes de llamar a getActivity ()
- Cómo probar la unidad android y burlarse de un método estático
- El uso de InstrumentationTestRunner personalizado en Eclipse provoca un error
- Deshabilitar el error de clase duplicado para las clases en la carpeta de prueba - Android Studio / IntelliJ
- Las pruebas de Robolectric lanzan RuntimeException: java.lang.ClassNotFoundException
Para poder inyectar una aplicación utilizando setApplication () , debe utilizar ActivityUnitTestCase , ya que sólo está disponible en esta clase de caso de prueba.
De forma predeterminada, ActivityUnitTestCase crea un objeto MockApplication oculto que se utiliza como la aplicación bajo prueba.
Puede obtener el contexto de la aplicación desde el objeto de instrumentación:
getInstrumentation().getTargetContext().getApplicationContext()
Para aquellos que usan
AndroidTestCase
y que necesitan la subclase de la aplicación de la aplicación:
MyApplication context = (MyApplication) getContext().getApplicationContext();