Uso de activos en pruebas roboeléctricas
En mis pruebas roboeléctricas estoy tratando de leer un archivo. Dado que este archivo contiene sólo los datos de prueba que he puesto en los activos de las pruebas.
La estructura de directorios se parece a esto.
src/main/assets/prod_data_file
src/test/assets/test_data_file
- Prueba de vistas personalizadas con Robolectric: Ancho y altura siempre son 0
- shadowOf () undefined en Robolectric-3.0-rc3.jar
- Robolectric buildActivity () con espía Mockito?
- Robolectric es-singlepane (/ solo-fragmento) -test
- Robolectric + Maven
Sin embargo, cuando intento leer el archivo por getShadowApplication().getAssets().open(MY_FILE_PATH)
me da FileNotFoundException
.
Sabe alguien cómo arreglar esto?
- No se pudieron determinar las dependencias para todas las tareas con robolectric gradle plugin
- Kotlin y ArgumentCaptor - IllegalStateException
- Robolectric getResources () lanza RuntimeException (Android)
- Parse + Robolectric causando java.lang.VerifyError: Tipo incorrecto en pila de operandos
- Java.util.ConcurrentModificationException en las pruebas de JUnit
- Gradle + Robolectric: ¿Dónde puedo poner el archivo org.robolectric.Config.properties?
- Automatización de la caja de prueba de la unidad Android: biblioteca Robolectric vs marco de pruebas de Android
- ¿Es posible reemplazar el MediaStore con un doble de prueba usando robolectric?
Dado que mis pruebas son sólo la lectura de estos archivos y la devolución de datos de archivo como una String
que era capaz de hacerlo a través de getClass().getClassLoader().getResourceAsStream(MY_FILE_PATH)
y luego leer el archivo. Realmente no necesitas leer para usar getShadowApplication().getAssets().open(MY_FILE_PATH)
.
Acabo de mover mis archivos de datos de prueba a src/test/resources
y funcionó. 🙂
Yo era capaz de hacerlo así:
1) Copiar (o crear) AndroidManifest.xml en la carpeta de prueba
2) Añada @Config(emulateSdk = 18, manifest = "src/test/AndroidManifest.xml")
para esta prueba específica
Pude leer el archivo. Así que significa que puedes jugar con la clase AndroidManifest
y el corredor personalizado (más inspiración aquí https://groups.google.com/forum/#!topic/robolectric/YvbdqRFcdnA )
Creo que también podría ser posible jugar con build.gradle
:
android { sourceSets { androidTest.setRoot( 'src/test' ) androidTest { assets.srcDir file( 'src/test/assets' ) } } }
Pero no estoy seguro ya que el complemento no crea ninguna variante de compilación, sino sólo tareas.
- Error de ThreeTen-Backport en Android – ZoneRulesException: No se registraron archivos de zona horaria
- GetActivity (). FindViewById devuelve null, llamado desde el fragmento onActivityCreated