unitarias unit una tipos test pruebas preguntas para moviles ejemplo crear como automatizadas app aplicaciones aplicacion android sqlite unit-testing android-context

android - unit - tipos de pruebas para aplicaciones moviles



Prueba de Android JUnit4-¿De dónde obtener el contexto? (1)

Como se describe aquí: https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide Utilice el registro de instrumentos 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 del de su prueba de aplicación / unidad. 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_"); } }

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

Tengo que construir una aplicación con el uso de sqlite. Ahora quiero escribir mis pruebas unitarias. Estas pruebas unitarias deberían probar mi clase SQLiteBridge . SQLiteBridge proporciona DAO para cada clase secundaria de Modelo.

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.

¿De dónde obtener el objeto de contexto?

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

EDITAR: Espero que exista una forma como la antigua AndroidTestCase para extender sin perder Junit4. :)