1
我需要模拟一个Android仪器测试的静态方法。 如果我需要模拟静态方法,测试类需要是@RunWith(PowerMockRunner.class)
。但我的仪器测试需要与AndroidJUnit4.class
一起运行。Android仪器测试与PoweMockito
是否有可能有两个可运行?或者有什么其他方式可以使用功率模拟来模拟静态方法吗?或任何其他选项来模拟静态类?
我需要模拟一个Android仪器测试的静态方法。 如果我需要模拟静态方法,测试类需要是@RunWith(PowerMockRunner.class)
。但我的仪器测试需要与AndroidJUnit4.class
一起运行。Android仪器测试与PoweMockito
是否有可能有两个可运行?或者有什么其他方式可以使用功率模拟来模拟静态方法吗?或任何其他选项来模拟静态类?
要处理自1.4版本以来的情况,可以使用JUnit Rule而不是Runner来引导PowerMock。事情看起来像这样:
@RunWith(AndroidJUnit4.class)
@PrepareForTest(X.class);
public class MyTest {
@Rule
PowerMockRule rule = new PowerMockRule();
// Tests goes here
...
}
但要知道,PowerMock正在使用的,需要有人转化为dalvikVM DEX字节码操作。目前还没有工具可以支持(https://groups.google.com/forum/#!topic/powermock/9kwPaWoZ_14,https://stackoverflow.com/a/27956309/624706)