Инструментальный тест Android с PoweMockito

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

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




Ответы (1)


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

@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< /а>)

person Sergii Pechenizkyi    schedule 11.08.2016