【发布时间】:2018-05-29 12:47:51
【问题描述】:
我正在尝试对此代码进行单元测试:
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?谢谢。
【问题讨论】:
-
你能否重构
new Bundle(1);可以移动到单独的包级方法?
标签: java android unit-testing mockito powermock