【发布时间】:2017-08-11 03:06:13
【问题描述】:
我想为我的 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: Failed resolution of: Ljava/beans/Introspector;”在 PowerMock...
似乎 android sdk 已经删除了 java.beans 中的一些类。* https://developer.android.com/reference/java/beans/package-summary.html
如何模拟或伪造静态方法返回值?
非常感谢。
【问题讨论】:
-
你可以看看这个试试看。stackoverflow.com/questions/15065545/…
-
除了本地替换包外,似乎没有java.beans缺失的解决方案...
标签: java android unit-testing android-instrumentation