Ich versuche, Unit-Test auf diesem Code zu tun:Mock android.os.BaseBundle ohne roboelectric
Bundle cidParam(String accountId) {
Bundle params = new Bundle(1);
params.putString(Params.CID, accountId);
return params;
}
Dies ist das Gerät zu testen:
private void mockBundle(String cid) throws Exception {
Bundle mBundle = PowerMockito.mock(Bundle.class);
PowerMockito.doNothing().when((BaseBundle)mBundle).putString(AnalyticsController.Params.CID, cid);
}
Es ist jedoch immer zurück:
java.lang.RuntimeException: Method putString in android.os.BaseBundle not mocked.
Ich weiß, ich kann Roboelectric zu Spin Simulator und rufen Sie das echte Bündel. Dies verlangsamt jedoch den Komponententest. Wer weiß, wie man die Android.os.base verspottet? Vielen Dank.
können Sie umgestalten, damit das 'neue Bundle (1);' in eine separate Package-Level-Methode verschoben werden kann? –