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.

Desafortunadamente, ActivityInstrumentationTestCase2 no proporciona acceso al contexto. ¿Hay alguna manera de acceder al contexto antes de obtener la actividad?

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(); 
  • Prueba de unidad con Firebase
  • Prueba de unidad de Android Studio: leer datos (entrada)
  • Cómo ensayar un servicio de Android que depende de una conexión de red
  • ¿Cómo probar un AlertDialog en Android?
  • Prueba de unidad de ciclo de vida de actividad
  • Valor de Stub de Build.VERSION.SDK_INT en la prueba de unidad local
  • No se puede burlar la clase final de Kotlin usando Mockito 2
  • Diálogo de prueba en ActivityUnitTestCase de Android
  • PowerMock en el proyecto Android
  • Robolectric no utiliza ShadowWebView como la superclase de una clase que extiende WebView. MustOverrideException en su lugar
  • qué prueba de unidad, en aplicaciones Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.