如何在 android sdk 上使用 PowerMock [英] How to use PowerMock on android sdk

查看:28
本文介绍了如何在 android sdk 上使用 PowerMock的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为我的 android 项目编写一些单元测试和仪器测试.

I want to write some unit tests and instrumentation tests for my android project.

然而,我遇到了一个困扰我一段时间的问题......我需要模拟一个静态方法并伪造返回值来测试项目.

However, I've met a problem that stuck me a while... I need to mock a static method and fake the return value to test the project.

经过一些论坛的调查,唯一的方法是使用PowerMock来模拟静态方法.

After survey from some forums, the only way to do this is to use PowerMock to mock the static method.

这是我的gradle的一部分:

This is a part of my gradle:

androidTestCompile "org.powermock:powermock-module-junit4:1.7.0"
androidTestCompile "org.powermock:powermock-module-junit4-rule:1.7.0"
androidTestCompile "org.powermock:powermock-api-mockito:1.7.0"

和我的测试班:

@RunWith(PowerMockRunner.class)
public class MyClassTest {
    ...
}

然后我得到java.lang.NoClassDefFoundError: Failed resolution of: Ljava/beans/Introspector;"在 PowerMock 中...

Then I got "java.lang.NoClassDefFoundError: Failed resolution of: Ljava/beans/Introspector;" in PowerMock...

似乎 android sdk 已经删除了 java.beans.* 中的一些类https://developer.android.com/reference/java/beans/包摘要.html

It seems android sdk had removed some Class in java.beans.* https://developer.android.com/reference/java/beans/package-summary.html

如何模拟或伪造静态方法的返回值?

How can I mock or fake the static method return values?

非常感谢.

推荐答案

尝试使用旧版本

def powermock_version="1.6.6"androidTestCompile "org.powermock:powermock-module-junit4:$powermock_version"androidTestCompile "org.powermock:powermock-module-junit4-rule:$powermock_version"androidTestCompile "org.powermock:powermock-api-mockito:$powermock_version"

def powermock_version="1.6.6" androidTestCompile "org.powermock:powermock-module-junit4:$powermock_version" androidTestCompile "org.powermock:powermock-module-junit4-rule:$powermock_version" androidTestCompile "org.powermock:powermock-api-mockito:$powermock_version"

这篇关于如何在 android sdk 上使用 PowerMock的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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