如何在 android sdk 上使用 PowerMock [英] How to use PowerMock on android sdk
问题描述
我想为我的 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屋!