我發現這個example他們使用PowerMock和EasyMock存根/模擬android的Menu和MenuItem類。我一直在嘗試用PowerMock和Mockito做類似Activity的事情。嘗試使用PowerMockito存根android Activity類拋出RuntimeException「Stub!」
我知道很多方法都是final的,在Android.jar中它們都拋出RuntimeException(「Stub!」)。
我也明白,這個測試並不完整,但我只是想看看是否有可能嘲笑android活動類。
但是,鑑於PowerMock允許你用final方法模擬類,不應該使用這種代碼嗎?
@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 2010-09-27 22:38:24
沒有骰子,你能告訴我你的進口線是什麼樣子嗎? – bytebender 2010-09-27 22:52:10
我已經將整個eclipse項目上傳到http://maik.0x2a.at/PowerMockTests.zip。你可能需要修改路徑到android.jar – crazymaik 2010-09-27 22:59:30