使用PoweMockito进行Android Instrumentation测试

时间:2016-08-10 01:42:44

标签: android unit-testing android-espresso powermockito android-instrumentation

我需要在android检测测试中模拟一个静态方法。 如果我需要模拟静态方法,则测试类需要为AndroidJUnit4.class。但我的仪器测试需要与private void LongMethod() { for (int i=0; i<number;i++) { for (int j=0; j<number; j++) { object o = new object(); queue.enqueue(o); } } } 一起运行。

有可能有两个可运行的吗?或者有没有其他方法我可以使用power mock来模拟静态方法?或任何其他模拟静态类的选项?

1 个答案:

答案 0 :(得分:3)

要处理1.4版本以来的情况,可以使用JUnit规则而不是运行程序来引导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_14https://stackoverflow.com/a/27956309/624706