android - 我真的可以在测试中启用和禁用网络访问吗?

标签 android integration-testing robotium

我想编写在模拟器上运行的自动化测试,以验证我的应用程序在网络连接自发断开时是否正常运行。为此,我想编写如下测试:

  1. 启用网络连接。
  2. 开始一些应用程序网络操作,例如长文件下载。
  3. 禁用网络连接。
  4. 验证是否显示了丢失的网络连接对话框。

我已经看到各种 stackoverflow 答案通过建议通过命令行从主机 PC 手动禁用网络连接来解决这个问题。这不能通过在仿真器上运行的测试自动执行,因为仿真器无法访问其主机 PC。在主机 PC shell 脚本中运行命令将很难尝试自动与仿真器测试同步。

另外,我看到的答案建议操纵模拟器的网络设置,这显然实际上并没有禁用访问,它们只会导致显式连接检查,如 networkInfo.isConnected() 以报告断开连接状态.他们仍然允许双向通信。 (例如,当模拟器网络访问被禁用时,浏览器仍然可以正常运行。)

有没有人能够构建在模拟器上运行的自动化测试,并在测试中根据需要实际打开和关闭网络访问?

最佳答案

目前无法在单元测试中以编程方式真正禁用网络访问。我提交了 enhancement request对于这个问题。

关于android - 我真的可以在测试中启用和禁用网络访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007031/

相关文章:

java - 任务 ':app:dexDebug' 执行失败

android - 有没有一种方法可以运行两个正在为 android 开发的应用程序以从 eclipse 同时运行

android - 如何确保 AsyncTask 在我的 Activity 被终止之前完成?

android - 使用抽屉导航的应用程序的 Robotium UI 测试

android - libgdx 中的纹理灰度

java - Cucumber:场景大纲重用示例表

java - Maven测试组装的jar

grails 2.4.4 集成测试不使用测试数据源

android - 解锁模拟器或设备以进行 Android 测试

android - 热应用程序启动和热应用程序启动之间的区别