3

我有MainActivitySubActivity

MainActivity有一个触发startActivityForResult呼叫的按钮SubActivity

SubActivy责任将记录添加到某个存储库,这样当它调用 时finishMainActivty方法 onActivityResult 中的 必须调用notifyDataSetChanged适配器上的 :

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if(resultCode == RESULT_OK && requestCode == 1) {
                    adapter.notifyDataSetChanged();
            }
    }

现在,有没有办法用 Robolectric来测试这个来来去去?现在我可以测试通过单击 from MainActivityto调用的意图SubActivity(使用 Shadow 对象),但我看不到没有办法触发finishon SubActivity(将新元素添加到存储库中),所以我可以检查适配器正在显示新元素MainActivity

我是 Roboelectric 的新手,所以如果我想测试的内容超出了这个框架的范围,我不会。我应该使用 Mockito 吗?

4

2 回答 2

4

我将对这两个活动进行两个单元测试。

MainActivityTest: _

  1. 检查SubActivity意图是否已启动
  2. 检查onActivityResult刷新列表RESULt_OK

SubActivityTest: _

  1. 将记录添加到数据库
  2. 完成与RESULT_OK

对于整个验收测试,我会使用RobotiumCalabash

于 2013-10-24T07:41:48.587 回答
3

Robolectric 不是集成测试框架。它是一个允许您编写单元测试并在桌面 JVM 上运行它们的框架。Eugen 的回答很准确:使用 Robolectric 单独测试每个活动。如果您想通过应用程序测试整个流程(跨越多个活动、服务等),请使用 Google 的InstrumentationTestCase框架、RobotiumCalabash

于 2013-10-25T03:04:10.407 回答