android - 是否可以使用 Robolectric 进行集成测试?

标签 android tdd integration-testing robolectric

我有MainActivitySubActivity .

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 对象),但我看不出有什么办法可以触发 finishSubActivity (将新元素添加到存储库)所以我可以检查适配器是否在 MainActivity 上显示新元素

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

最佳答案

我将为这两个 Activity 进行两个单元测试。

MainActivityTest:

  1. 检查 SubActivity intent 是否启动
  2. 检查 onActivityResult 是否在 RESULt_OK 上刷新列表

SubActivityTest:

  1. 向数据库添加记录
  2. RESULT_OK 结束

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

关于android - 是否可以使用 Robolectric 进行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19541997/

相关文章:

c# - 为什么 RhinoMocks 在我的测试中抛出 InvalidOperationException?

ruby-on-rails - 使用 Rspec 测试存在和所属关系

continuous-integration - 使用 docker 进行持续交付的集成测试

javascript - 使用 Puppeteer 捕获 HTTP 响应的正确方法是什么?

android - 将应用程序事件 (logcat) 保存在 sd 上的文件中

java - 电话管理器的 getvoicemessagecount api 无法访问

django - TDD Django 测试似乎跳过了 View 代码的某些部分

java - Spring Controller 集成测试无法解析响应并导致测试失败并显示 406 HTTP 代码

android - 如何在android中获取手机的smsc号码?

android - 在 onDestroy() 中使用 system.exit(0) (Android)