Я нашел этот пример , где они использовали PowerMock и EasyMock, чтобы заглушки / насмешки над классами Menu и MenuItem для Android. Я пытался сделать что-то похожее с PowerMock и Mockito с классом Activity.
Я понимаю, что многие методы являются окончательными и что в 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 больше не возникнет, и будет возвращено «Title», но оно все равно выдает исключение.
Я пробовал все виды разных вещей, таких как doReturn("Title").when(mockActivity).getTitle();
и suppress(constructor(Activity.class));
Я что-то не так делаю или это просто невозможно?