java - 如何在android sdk上使用PowerMock

标签 java android unit-testing android-instrumentation

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

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

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

这是我的 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:解析失败:Ljava/beans/Introspector;”在 PowerMock 中……

看来 android sdk 已经删除了 java.beans 中的一些类。* https://developer.android.com/reference/java/beans/package-summary.html

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

非常感谢。

最佳答案

尝试使用旧版本

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"

关于java - 如何在android sdk上使用PowerMock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45626317/

相关文章:

java - 文件名在 log4j 中滚动文件

java - 当我尝试在 Android Studio 中构建项目时,如何修复此错误?

android - 如何像 snapchat 一样获得更高的相机预览 fps?

javascript - 将 angular-route 1.5.0 更新为 1.5.1 时出现 Karma 错误

php - 运行 PHPUnit 时出错

java - 处理 Google App Engine 任务队列中的请求

java - 使用 ConcurrentHashMap 的多线程

Java Restful web服务方法消费MultiPart数据抛异常

java - Android 谷歌放置 API REQUEST_DENIED

ios - 每次运行单元测试时如何运行应用程序的全新安装?