Пытается получить PowerMockito, идущий здесь для модульного тестирования на Android с RoboElectric. Я хочу вызвать публичный метод в тесте и проверить какое-то поведение, но я хочу изменить ответ частного метода в этом классе. Этот образец:PowerMockito с частным методом RoboElectric не издевается
public class TestPrivate {
public String doTest() {
return test();
}
private String test() {
return "FOO";
}
}
Я хочу запустить тест, который называется doTest, но использовать PowerMockito для изменения того, что возвращает test(). Моя попытка ниже не работает, тест() Возвращает "Foo", когда я бы ожидать моего теста, чтобы вернуться "BAR"
@RunWith(RobolectricTestRunner.class)
@PrepareForTest(TestPrivate.class)
public class WebSocketClientTest extends TestCase {
@Test
public void testConnect() throws Exception {
TestPrivate spy = PowerMockito.spy(new TestPrivate());
doReturn("BAR").when(spy, method(TestPrivate.class, "test"));
String response = spy.doTest();
assertEquals("BAR", response);
}
}
пару вещей:
Использование RoboElectric Test Runner кажется нормально с PowerMockito 1,6
Вот мой Gradle импорта
androidTestCompile 'junit:junit:4.11'
androidTestCompile 'org.robolectric:robolectric:2.4'
androidTestCompile 'org.powermock:powermock-mockito-release-full:1.6.0'
заранее спасибо, есть другие сообщения об этом, но ни один из них не работают и года.
Спасибо Том - да, я не понял бегуна. Эта процедура позволила мне запустить тест с помощью roboelectric runner: https://github.com/robolectric/robolectric/issues/1058 – bsautner