1

Мне нужно издеваться над статическим методом на тесте на андроид. Если мне нужно высмеять статический метод, класс тестирования должен быть @RunWith(PowerMockRunner.class). Но мой контрольно-измерительный тест должен работать с AndroidJUnit4.class.Android Instrumentation Test с PoweMockito

Возможно ли иметь две управляемые? или есть ли какой-либо другой способ, которым я могу использовать power mock для издевательства статических методов? или любые другие варианты для издевательства статических классов?

ответ

2

Для обработки таких случаев, начиная с версии 1.4, можно запускать PowerMock с использованием правила JUnit вместо бегуна. Что-то вида:

@RunWith(AndroidJUnit4.class) 
@PrepareForTest(X.class); 
public class MyTest { 
    @Rule 
    PowerMockRule rule = new PowerMockRule(); 

    // Tests goes here 
    ... 
} 

Но следует помнить, что PowerMock использует манипуляцию байт-кода, который кто-то нужно преобразовать в dalvikVM декс. И в настоящее время нет инструментов для поддержки этого (https://groups.google.com/forum/#!topic/powermock/9kwPaWoZ_14, https://stackoverflow.com/a/27956309/624706)