mtb*_*ave 29 testing networking android unit-testing
我正在开发一个针对Android的推送通知库(http://deaconproject.org/),如果网络连接中断或更改,它需要采取措施 - 即,它需要重新启动服务器连接或暂停其操作,直到网络连接可用.对于"android.net.ConnectivityManager.CONNECTIVITY_ACTION",这似乎可以正常使用Android BroadcastReceiver.
我的问题在于测试库 - 我想在各种配置条件下自动测试库对网络连接断开的响应,或从3G到WiFi的转换.问题是,我不想和模拟器坐在一起并整天打F8.
有没有办法在jUnit测试中以编程方式操作Android上的网络连接,而无需转换飞机模式?我已经尝试通过控制台向模拟器发出命令,操作GSM模式等,但是当显示器上的手机状态发生变化时,互联网连接仍然保持通信状态.
小智 7
右键单击"Project Explorer"面板中的项目,选择"Run As",然后选择"Run Configurations".
在模态显示的窗口的左侧选择"Android应用程序",在同一窗口的右侧,选择"目标"选项卡.
在窗口的底部,在"模拟器启动参数"部分中,您有很多关于互联网连接的选项.
我希望这有帮助.
伊戈尔
我发现Android Dev Tools应用确实非常有用.
它允许您操作重要的系统设置,如网络连接.它甚至允许您设置一个自动打开和关闭wifi的时间间隔,从而允许您测试网络相关的广播接收器.
如果您想在真实开发设备上安装Dev Tools应用程序,可以从模拟器复制应用程序,然后使用ADB将其安装到您的设备上.要从正在运行的模拟器中复制应用程序,请执行:
adb -e pull /system/app/Development.apk ./Development.apk
Run Code Online (Sandbox Code Playgroud)
这会将.apk文件复制到当前目录中.然后将其安装在您连接的设备上:
adb -d install Development.apk
Run Code Online (Sandbox Code Playgroud)
