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

Jef*_*rod 5 android integration-testing robotium

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

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

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

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

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

Jef*_*rod 3

目前还没有办法在单元测试中以编程方式真正禁用网络访问。我针对此问题提交了增强请求。