目的:做移动自动化测试的时候,需要有断网情况的验证,但是robotium没有这个方法,只能自己写一个类,以下是解决办法!从一个博客上看到的代码。。。自己有思路但是还不太会写!
不过我动手实践了,可以成功,大家用robotium做自动化的可以使用这个办法哦!
代码贴出来:
注册wifi:
<<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
<</uses-permission>
<<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
<</uses-permission>
<<uses-permission android:name="android.permission.WAKE_LOCK" >
<</uses-permission>
wifi类:
import java.util.List;
import java.util.Scanner;
import android.content.Context;
import android.net.wifi.*;
import android.net.wifi.WifiManager.WifiLock;
public class WifiAdmin {
private WifiManager wifiManager = null;
public WifiAdmin(Context context) {
wifiManager = (WifiManager) context
.getSystemService(context.WIFI_SERVICE);
}
// 启动wifi
public void openWifi() {
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
}
// 关闭wifi
public void closeWifi() {
if (wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
// 获取网络状态
public int fromWifiState() {
int iWifiState = wifiManager.getWifiState();
return iWifiState;
}
}
测试类:
public void testWifiState() {
solo.assertCurrentActivity("进入首页", MainActivity.class);
solo.clickOnView((Button) solo.getView(R.id.closeBtn));
solo.sleep(6000);
WifiAdmin wifiAdmin = new WifiAdmin(getActivity().getBaseContext());
String strWifi = String.valueOf(wifiAdmin.fromWifiState());
Log.i("wifi", "当前wifi状态为:" + strWifi);
}
运行成功!
转载地址:http://blog.sina.com.cn/s/blog_c2b104bb01018xcl.html