Я нашел это example, где они использовали PowerMock и EasyMock, чтобы заглушить/издеваться над разделами Menu и MenuItem для Android. Я пытаюсь сделать что-то подобное с PowerMock и Mockito с классом Activity.Попытка заглушить андроид Класс активности с использованием PowerMockito throws RuntimeException «Stub!»
Я понимаю, что многие методы являются окончательными, а в Android.jar все они просто бросают RuntimeException («Stub!»).
Я также понимаю, что этот тест не является полным, но я просто хочу посмотреть, можно ли высмеять класс активности Android.
Но учитывая, что PowerMock позволяет вам высмеивать классы с помощью окончательных методов, не должен ли этот код работать?
@RunWith(PowerMockRunner.class)
@PrepareForTest(Activity.class)
public class MyTestCase extends TestCase {
public void testPlease_JustWork() throws Exception {
Activity mockActivity = PowerMockito.mock(Activity.class);
PowerMockito.when(mockActivity.getTitle()).thenReturn("Title");
}
}
Я думаю, что RuntimeException больше не будет происходить и «Название» будет возвращен, но он по-прежнему бросает исключение.
Я перепробовал все виды различных вещей, как doReturn("Title").when(mockActivity).getTitle();
и suppress(constructor(Activity.class));
я делаю что-то неправильно, или это просто не представляется возможным?
Я дам ему попробовать ... – bytebender
Нет кубиков, вы можете показать мне, как выглядят ваши линии импорта? – bytebender
Я загрузил весь проект затмения на http://maik.0x2a.at/PowerMockTests.zip. Возможно, вам придется адаптировать путь к android.jar – crazymaik