Error de tiempo de ejecución PowerMock + Mockito: ProxyFrameworkImpl no se pudo encontrar en classpath
Estoy tratando de usar PowerMock con el Android InstrumentTestCase Desde mi prueba se ejecuta en un dispositivo Android las bibliotecas tiene que ser añadido a la apk.
Me encuentro con grandes problemas con powermock + mockito y archivos Dex. Tengo un error en tiempo de ejecución con sólo powermock + mockito en mis dependencias:
- Llamadas de método de burla usando power mockito - org.powermock.api.mockito.ClassNotPreparedException
- No se pueden ejecutar pruebas unitarias en Android Studio
- PowerMockito: NotAMockException en un simulacro
- Cómo conseguir que Powermock funcione con Dexmaker
- No puede encontrar ProxyFrameworkImpl por nombre
org.powermock.api.extension.proxyframework.ProxyFrameworkImpl could not be located in classpath.
Y un error de compilación si incluyo cglib / cglib-nodep (ha sugerido en las respuestas ):
com.android.dex.DexException: Multiple dex files define Lnet/sf/cglib/beans/BeanCopier$BeanCopierKey
Aquí hay una parte de mi gradle.build:
androidTestCompile 'com.android.support.test:runner:0.3' androidTestCompile 'org.powermock:powermock-api-mockito:1.6.4' androidTestCompile 'org.powermock:powermock-module-junit4:1.6.4' androidTestCompile 'cglib:cglib-nodep:3.2.0' androidTestCompile 'cglib:cglib:3.2.0'
Qué me estoy perdiendo ?
¡Gracias por adelantado!
- Valor de Stub de Build.VERSION.SDK_INT en la prueba de unidad local
- Android - Cómo ensayar una clase de registro con mockito
- ¿Cómo usar PowerMock en proyectos de Android?
- Cómo probar la unidad android y burlarse de un método estático
- Mocking Static Methods con PowerMockito en Android
- Powermockito puede utilizarse con Android Studio 1.2
- AndroidStudio / Gradle con powermock
- Cómo probar métodos de unidad que interactúan con clases de sistema (o Android)
También intenté usar PowerMock para las pruebas de instrumentación de Android y quedé atascado con el mismo problema.
Esto es lo que he encontrado en PowerMock github
PowerMock no funcionará en Android si lo ejecuta en un dispositivo, ya que PowerMock está utilizando la manipulación de código de bytes JVM. Funcionará si lo ejecuta en una JVM sin embargo.
Por lo tanto, supongo PowerMock es sólo apropiado para la prueba de unidad en Android.
- Uso de elementos personalizados en una Notificación de Android
- ERROR_CODE_MERCHANT_ACCOUNT_ERROR (405) mientras probaba Android Pay en el entorno de prueba utilizando el código de ejemplo de Google