せずに、私はこのコードでユニットテストを実行しようとしてい:モックandroid.os.BaseBundle roboelectric
Bundle cidParam(String accountId) {
Bundle params = new Bundle(1);
params.putString(Params.CID, accountId);
return params;
}
これは、ユニットテストです:
private void mockBundle(String cid) throws Exception {
Bundle mBundle = PowerMockito.mock(Bundle.class);
PowerMockito.doNothing().when((BaseBundle)mBundle).putString(AnalyticsController.Params.CID, cid);
}
しかし、それは常に返します。
java.lang.RuntimeException: Method putString in android.os.BaseBundle not mocked.
私はroboelectricを使ってシミュレータを回転させ、実際のバンドルを呼び出すことができます。しかし、単体テストは遅くなります。誰でもAndroid.os.baseを模擬する方法を知っていますか?ありがとうございました。
'新しいバンドル(1);'を別のパッケージレベルメソッドに移動できるようにリファクタリングすることはできますか? –