Robolectric – No se pudo cargar la clase: org.robolectric.shadows.ShadowMultiDex

Estoy configurando Robolectric para un proyecto que usa multi dex. Estoy utilizando Robolectric 3.0 RC3 que debe apoyar Multidex sin lanzar que la "excepción de la instalación múltiple dex falló".

testCompile('org.robolectric:robolectric:3.0-rc3') 

Mi prueba de ejemplo está en src / test / java / SandwichTest:

 @RunWith(RobolectricGradleTestRunner.class) public class SandwichTest { @Test public void firstTest() { } } 

Tengo un archivo de configuración global para cargar ShadowMultiDex en src / test / resources llamado robolectric.properties según las instrucciones en el sitio de Robolectric :

 shadows=org.robolectric.shadows.ShadowMultiDex 

Cuando ejecuto mi muestra SandwichTest, obtengo esta excepción:

 Could not load class: org.robolectric.shadows.ShadowMultiDex java.lang.RuntimeException: Could not load class: org.robolectric.shadows.ShadowMultiDex at org.robolectric.annotation.Config$Implementation.parseClass(Config.java:147) 

Parece que Robolectric está encontrando mi archivo de configuración pero no puede cargar la clase ShadowMultiDex. Intentando agregar el módulo multi dex de sombra a mi archivo gradle manualmente:

  testCompile('org.robolectric:shadows-multidex:3.0-SNAPSHOT') 

o

  testCompile('org.robolectric:shadows-multidex') 

Causa "no se pudo resolver" los problemas durante la sincronización.

¿Qué pasos me falta para que se ejecute esta prueba de muestra?

En su pregunta, noté que le faltaba una version de su dependencia de Gradle .

Tienes:

 testCompile('org.robolectric:shadows-multidex') 

Necesitas:

 testCompile('org.robolectric:shadows-multidex:3.0') 

Lanzamiento actual: https://oss.sonatype.org/content/repositories/releases/org/robolectric/shadows-multidex/

Debe eliminar el:

 shadows=org.robolectric.shadows.ShadowMultiDex 

Desde su archivo src/test/resources/robolectric.properties . Que se utiliza para sombras custom .

  • Robolectric - La aplicación tiene Singletons en la configuración, causando problemas con las pruebas
  • Android java.lang.NoClassDefFoundError: R $ string
  • Robolectric no inicia actividad en la orientación correcta
  • Robolectric: ejecute el looper del manipulador en mi caso
  • Robolectric + Maven
  • Los depósitos Robolectric en objetos de aplicación que cargan bibliotecas JNI. ¿Puedo obtener una solución?
  • ¿Cómo puedo detectar con Robolectric que onBackPressed se llama programáticamente?
  • Robolectric 3.0: Mocking System.currentTimeMillis ()
  • Prueba de tareas asíncronas con robolectric
  • Cómo probar que una intención ha sido difundida
  • ¿Cómo puedo crear una clase de sombra para evitar fallos relacionados con atributos personalizados al probar una aplicación de Android con Robolectric?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.