无法使用Mockito模拟静态方法进行Android中的检测测试

时间:2016-05-10 08:10:33

标签: android unit-testing mockito powermock

我正在使用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模拟静态方法。对此有何解决方案?

0 个答案:

没有答案