PowerMock と EasyMock を使用して Android の Menu および MenuItem クラスをスタブ/モック化するこの例を見つけました。私は PowerMock と Mockito で Activity クラスを使って同様のことをしようとしています。
多くのメソッドが final であり、Android.jar ではすべて RuntimeException("Stub!") をスローするだけであることを理解しています。
また、このテストが完了していないことも理解していますが、android Activity クラスをモックできるかどうかを確認したいだけです。
しかし、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));
私は何か間違ったことをしていますか、それともこれは不可能ですか?