我正在使用Mockito
框架来模拟用于编写检测测试的对象。但我无法使用Mockito
模拟静态方法。我知道单独使用Mockito
是不可能的,建议的解决方案是在PowerMock
之上使用Mockito
。但是当我使用PowerMock
时,它会引发以下异常。
java.lang.IllegalStateException: Extension API internal error: org.powermock.api.extension.proxyframework.ProxyFrameworkImpl could not be located in classpath.
搜索此异常表明,这是因为PowerMock生成.class文件,但是对于运行检测测试,我们需要有.dex文件。因此解决方案是添加dexmaker库。因此我添加了dexmaker库。
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
但是在添加该库之后,我在编译时遇到了以下异常。
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebugAndroidTest'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK mockito-extensions/org.mockito.plugins.MockMaker
File1: C:\Users\anshul.jain\.gradle\caches\modules-2\files-2.1\org.powermock\powermock-api-mockito\1.6.4\fe12509b7e9e49d25131f4155145748a31e42e40\powermock-api-mockito-1.6.4.jar
File2: C:\Users\anshul.jain\.gradle\caches\modules-2\files-2.1\com.google.dexmaker\dexmaker-mockito\1.2\b99884a4c6ef6335ba376f79aa79632b2421c17c\dexmaker-mockito-1.2.jar
我无法使用Mockito模拟静态方法。对此有何解决方案?