Robolectric: NotFoundException: recurso desconocido 0 en org.robolectric.shadows.ShadowAssetManager.getAndResolve (ShadowAssetManager.java:258)
Encontré el error cuando la prueba getView de un apdater. El código probado estaba llamando a View.setImageResource (0) durante el caso de prueba para establecer una imagen vacía cuando sucede la excepción.
Ejecuté la prueba robolectric-2.2-20130712.161723-17-jar-with-dependencies.jar con Eclipse. He intentado reemplazar el ResouceLoader con ShadowResources.createFor (nuevo ResourceLoader () {…}. Pero no funciona, mi ResouceLoader reemplazado no fue llamado.
- ActivityUnitTestCase getActionBar () devuelve null
- Cómo probar una actividad usando google-api-client
- Creación de un simulador de AlarmManager para la prueba
- Prueba de ciclo de vida de la actividad de Android
- ¿Cómo los métodos de prueba de unidad publicados por Event Bus en android?
¿Alguien sabe cómo resolverlo?
android.content.res.Resources$NotFoundException: unknown resource 0 at org.robolectric.shadows.ShadowAssetManager.getAndResolve(ShadowAssetManager.java:258) at org.robolectric.shadows.ShadowAssetManager.getResourceValue(ShadowAssetManager.java:85) at android.content.res.AssetManager.getResourceValue(AssetManager.java) at android.content.res.Resources.getValue(Resources.java:1009) at android.content.res.Resources.getDrawable(Resources.java:658) at org.robolectric.shadows.ShadowView.buildDrawable(ShadowView.java:92) at org.robolectric.shadows.ShadowImageView.setImageResource(ShadowImageView.java:38) at android.widget.ImageView.setImageResource(ImageView.java) at com.mobile.client.share.edentity.PhotostreamAdapter.getView(PhotostreamAdapter.java:54) at com.mobile.client.share.edentity.PhotostreamAdapterTest.testGetView(PhotostreamAdapterTest.java:163) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:241) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Otro problema similar en mi prueba de unidad roboletric en mi Apdater ContentDetailsAdapter es de la instrucción mContext.getResources (). GetString (R.string.delete_hint_title). El mContext es creado por Robolectric.getShadowApplication (). GetApplicationContext (). ¿Hay algo mal con mi configuración sobre Roboletric? Pude llamar a ProgressDialog.show (mContext, "", "") en mi prueba de unidad. Parece que el problema siempre está con los recursos. Aquí está la pila:
android.content.res.Resources$NotFoundException: String resource ID #0x7f07004f at android.content.res.Resources.getText(Resources.java:229) at android.content.res.Resources.getString(Resources.java:313) at com.mobile.client.share.edentity.ContentDetailsAdapter.checkDeletedSelection(ContentDetailsAdapter.java:220) at com.mobile.client.share.edentity.ContentDetailsAdapter.getCheckedItems(ContentDetailsAdapter.java:178) at com.mobile.client.share.edentity.SetsAdapterTest.testGetCheckedItems(SetsAdapterTest.java:361) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:241) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
- Mono para Android: qué marcos de pruebas funcionan
- Cómo determinar la unidad de píxeles (px, dp, etc) de una vista en Java?
- Ejecute UiAutomator API desde Android Studio (v0.8)
- Cómo generar un informe de cobertura de código de casos de prueba de instrumentación en Android Studio
- Agregue ID de programación a R.id
- Anotación @UiThreadTest produce "java.lang.Exception: No se pueden ejecutar métodos"
- ¿Cómo puedo obtener Mockito trabajando en androidTest
- No se puede burlar la clase final de Kotlin usando Mockito 2
Tuve un error similar a su 2 ª edición. Mi entorno se creó de acuerdo con http://www.youtube.com/watch?v=3mjcg5gfDLE
El ejemplo proporcionado funciona en mi Eclipse, pero cuando intenté vincular MyProjectTest a mi propia aplicación, apareció el segundo error que describiste.
El video describe la solución a las 6:00.
MyProjectTest -> Ejecutar como configuración -> JUnit -> MyProjectTestConfiguration -> Argumentos -> Haga clic en el botón de opción 'Otros' -> Espacio de trabajo -> seleccione
La casa de la toma es: si usted funciona sus pruebas robolectric para una diversa app, usted debe señalar el Direcotry de trabajo 'a él. Además, debe vincular su carpeta de prueba de MyProjectTest a una nueva carpeta de prueba en.
- Java.lang.RuntimeException: Parcel android.os.Parcel: Código desconocido del tipo de desconexión
- Cómo obtener la referencia de actividad antes de su oncreate se llama durante la prueba