我有MainActivity
和 SubActivity
.
MainActivity
有一个触发 startActivityForResult
的按钮打电话SubActivity
.
SubActivy
有责任将记录添加到某个存储库,以便在它调用 finish
时, MainActivty
,在 onActivityResult 方法中,必须调用 notifyDataSetChanged
在适配器上:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK && requestCode == 1) {
adapter.notifyDataSetChanged();
}
}
现在,有没有办法用 Robolectric 测试这个来来去去?现在,我可以通过单击 MainActivity
来测试调用的 Intent 。至 SubActivity
(使用 Shadow 对象),但我看不出有什么办法可以触发 finish
在 SubActivity
(将新元素添加到存储库)所以我可以检查适配器是否在 MainActivity
上显示新元素
我是 Roboelectric 的新手,所以如果我想测试的内容超出了这个框架的范围,我就不知道了。我应该使用 Mockito 吗?
最佳答案
我将为这两个 Activity 进行两个单元测试。
MainActivityTest
:
- 检查
SubActivity
intent 是否启动 - 检查
onActivityResult
是否在RESULt_OK
上刷新列表
SubActivityTest
:
- 向数据库添加记录
- 以
RESULT_OK
结束
对于整个验收测试,我会使用 Robotium 或 Calabash
关于android - 是否可以使用 Robolectric 进行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19541997/