Android JUnit4 Pruebas – ¿Dónde obtener el contexto de?

Tengo que construir una aplicación con sqlite uso. Ahora quiero escribir mis pruebas de unidad. Estas pruebas de unidad deben probar mi clase SQLiteBridge . SQLiteBridge proporciona SQLiteBridge para cada clase secundaria de Model.

Ahora tengo el problema de que necesito un contexto para crear mi SQLiteBridge . SQLiteBridge crea y maneja una base de datos SQLite en el sistema.

¿Dónde obtener el Context-Object?

Mi configuración es como aquí (así que estoy usando Junit4 [gracias a dios]): http://tools.android.com/tech-docs/unit-testing-support

EDIT: Espero que haya una manera como el viejo AndroidTestCase para extender sin perder Junit4. 🙂

Como se describe aquí: https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide Utilice el InstrumentationRegistry para obtener el contexto.

Sin embargo, si llama a InstrumentationRegistry.getContext() directamente, puede obtener una excepción al abrir su base de datos. Creo que esto se debe a que el contexto devuelto por getContext () apunta al contexto de la instrumentación en lugar de al de su aplicación / unidad de prueba. En su lugar, utilice InstrumentationRegistry.getInstrumentation().getTargetContext()

Por ejemplo:

 @RunWith(AndroidJUnit4.class) public class SqliteTest { Context mMockContext; @Before public void setUp() { mMockContext = new RenamingDelegatingContext(InstrumentationRegistry.getTargetContext(), "test_"); } } 

El RenamingDelegatingContext prefiere simplemente los nombres de archivo / base de datos con test_ para evitar que sobrescriba datos que pueda tener en el mismo simulador.

  • Prueba de RxJava2 doOnComplete ()
  • Cómo escribir una prueba de unidad para un controlador de excepción de subprocesos no detectados.
  • Prueba de la clase de comunicación con DB a través de DAO de ORMLite
  • Diferencia entre el método runOnUiThread () y la anotación @UiThreadTest
  • Prueba de unidad Android: ¿Cómo hacer que una clase sea más comprobable?
  • Instrumentation.ActivityMonitor no monitoreando Intent.ACTION_CALL
  • Creación de un proyecto de prueba de Android en Eclipse
  • Java.lang.IllegalAccessError: Clase ref en clase pre-verificada resuelto a la implementación inesperada obteniendo mientras ejecuta proyecto de prueba?
  • ¿Puedo probar las notificaciones de la barra de estado utilizando el marco de pruebas de Android?
  • ¿Hay una manera de iniciar el emulador de Android en Travis CI construir?
  • Cómo proporcionar archivos de datos para las pruebas de unidad de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.