我发现了这个例子,他们使用 PowerMock 和 EasyMock 来存根/模拟 android 的 Menu 和 MenuItem 类。我一直在尝试使用 Activity 类对 PowerMock 和 Mockito 做类似的事情。
我知道很多方法都是最终的,并且在 Android.jar 中它们都只是抛出 RuntimeException("Stub!")。
我也明白这个测试并不完整,但我只是想看看是否可以模拟 android Activity 类。
但是鉴于 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));
我做错了什么还是这不可能?