Actualización 2015/10
Ahora es posible a través de la AndroidJUnitRunner, que es parte de la Android Testing Support Library. En resumen, es necesario hacer lo siguiente en un proyecto basado en Gradle:
Añadir las dependencias:
dependencies {
compile 'com.android.support:support-annotations:22.2.0'
androidTestCompile 'com.android.support.test:runner:0.4.1'
}
Especifique el testInstrumentationRunner:
android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
anotar sus pruebas clase con @RunWith(AndroidJUnit4.class)
.
- Escriba sus pruebas en el estilo JUnit4 normal.
Ver también Espresso setup instructions. Tenga en cuenta que no necesita Espresso en sí para las pruebas simples de JUnit4.
¿Por qué se necesita
Hay muy poca información que pude encontrar en internet sobre este tema. Lo mejor que encontré fue la información en InstrumentationTestRunner.
No hay nada que impida que las pruebas JUnit4 se ejecuten en un dispositivo Android como cualquier otro código Java. Sin embargo, el marco de prueba de Android hace algo de trabajo adicional:
- Envía los resultados de las pruebas a su máquina de desarrollo a través de ADB.
- Hace instrumentación (no estoy seguro de qué se trata exactamente).
Lo anterior es realizado por algunas extensiones específicamente para JUnit3.
Este código específico de JUnit3 parece ser parte de InstrumentationTestRunner, que forma parte del núcleo del sistema Android. Sin embargo, como es evidente con AndroidJUnitRunner, es posible utilizar un corredor de prueba personalizado que admita JUnit4 u otros marcos.
¿Has visto esta pregunta? Quizás es lo que estás buscando: http://stackoverflow.com/questions/2172152/cant-run-junit-4-test-case-in-eclipse – bsimic
gracias, pero en realidad no estoy buscando esta solución. Por supuesto, con esta solución es posible probar POJO con JUnit 4. Pero es imposible usarlo para unidades de código que dependen de las clases de Framework de Android (es decir, se ejecutan en el dispositivo y no en la JVM en mi máquina de desarrollo) Estoy bastante seguro de que es casi imposible ejecutar pruebas JUnit 4 en el DVM, pero estoy buscando una explicación ¿POR QUÉ es este el caso? – Matthew
No sé por qué es así, además de que las implementaciones de prueba de la Unidad Android extienden las bibliotecas JUnit3. Estoy seguro de que las versiones futuras del kit de desarrollo de Android admitirán 4. – bsimic