如何获得Powermock与Dexmaker工作 [英] How to get Powermock to work with Dexmaker

查看:989
本文介绍了如何获得Powermock与Dexmaker工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想 Powermock 为我的Andr​​oid测试的依赖使用纳入以下的build.gradle配置:

I am trying to incorporate Powermock as a dependency for my Android tests using the following build.gradle configuration:

dependencies{
    compile 'com.android.support:appcompat-v7:21.0.+'
    androidTestCompile('org.mockito:mockito-core:1.9.5')
    androidTestCompile('com.google.dexmaker:dexmaker:1.2')
    androidTestCompile('com.google.dexmaker:dexmaker-mockito:1.2')
    androidTestCompile('org.powermock:powermock-module-junit4:1.5.5') {
        exclude module: 'junit'
    }
    androidTestCompile('org.powermock:powermock-api-mockito:1.5.5') {
        exclude module: 'mockito-all'
    }
}

不过,编译器抱怨说

However, the compiler is complaining that

Error:Gradle: Execution failed for task ':app:packageDebugTest'.
> Duplicate files copied in APK mockito-extensions/org.mockito.plugins.MockMaker
    File 1: ~/.gradle/caches/modules-2/files-2.1/com.google.dexmaker/dexmaker-mockito/1.2/b99884a4c6ef6335ba376f79aa79632b2421c17c/dexmaker-mockito-1.2.jar
    File 2: ~/.gradle/caches/modules-2/files-2.1/com.google.dexmaker/dexmaker-mockito/1.2/b99884a4c6ef6335ba376f79aa79632b2421c17c/dexmaker-mockito-1.2.jar

展望罐子结构,我注意到Dexmaker和Powermock都声明了一个 MockMaker 的Mockito的扩展

什么是MockMaker?它们有什么不同?
而最重要的问题:是否有可能得到Powermock与Dexmaker很好地工作。

What is a MockMaker? How do they differ? And the most important question: Is it possible to get Powermock to work nicely with Dexmaker?

在此先感谢。任何帮助将大大AP preciated。

Thanks in advance. Any help would be greatly appreciated.

推荐答案

MockMaker是胶水模块dexmaker与集成的Mockito。它有什么必要要的Mockito与Dalvik的.dex文件,而不是JVM的.class文件生成具体的类。

MockMaker is a glue module that integrates dexmaker with Mockito. It does what's necessary for Mockito to generate concrete classes with Dalvik .dex files instead of JVM .class files.

这可能是Powermock将与Dexmaker工作,但它不可能先进Powermock功能将正常工作。特别是,Powermock 发布此

It's possible that Powermock will work with Dexmaker, but it's unlikely advanced Powermock features will work. In particular, Powermock advertises this:

PowerMock使用自定义类加载器和字节code操作,使静态方法,构造函数,最终的类和方法,私有方法,去除静态初始化和更多的嘲讽。

这是自定义类加载器是不太可能在dalvikvm工作。

That custom class loader is unlikely to work on dalvikvm.

这篇关于如何获得Powermock与Dexmaker工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆