byt*_*der 9 junit android unit-testing mockito powermock
我找到了这个例子,他们使用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");
}
}
Run Code Online (Sandbox Code Playgroud)
我认为RuntimeException将不再发生,并且将返回"Title",但它仍然会抛出异常.
我尝试了各种不同的东西,比如doReturn("Title").when(mockActivity).getTitle();和suppress(constructor(Activity.class));
我做错了什么或这是不可能的?
我刚刚尝试了你的代码示例,它在这里工作,很奇怪。我下载了包含依赖项的 PowerMock 1.4.5 以及 Mockito 和 JUnit,并使用了 sdk (2.2) 中的 android.jar。如果我删除@PrepareForTest,它只会失败。
编辑
您可以使用 android.jar 以及您引用的文章中提供的已删除的异常代码。
| 归档时间: |
|
| 查看次数: |
4309 次 |
| 最近记录: |