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. :)