本文章只是一个基础记录,只涉及一些基础使用方法。
1.对于全局变量的获取和赋值
被测代码:所在类是ThirdAppManager.class
/**
* 本地数据存储类
*/
private SharedPreferences mLocalSp;
/**
* 监听
*/
private BroadcastListener broadcastListener = new BroadcastListener() {
@Override
public void onUUIDBroadcast(String s, String s1, byte[] blob) {
Log.d(TAG, "onUUIDBroadcast s:" + s + ",s1:" + s1);
//匹配返回操作广播关键字,判断是否连点
}
};
测试代码:
//对全局变量赋值
mThirdAppManager = ThirdAppManager.getInstance();
PowerMockito.field(ThirdAppManager.class, "mLocalSp")
.set(mThirdAppManager, null);
//获取全局变量
Field field = PowerMockito.field(ThirdAppManager.class, "broadcastListener");
BroadcastListener broadcastListener = (BroadcastListener) field.get(mThirdAppManager);
利用这个方法可以测试listener
测试代码:
@Test
public void testOnUUIDBroadcast_1() throws IllegalAccessException {
String tag = "_SWUT-SWAD-M011-C003-F001-001";
Log.d(TAG + tag, "testOnUUIDBroadcast_1 开始");
//该方法里实现了mThirdAppManager = ThirdAppManager.getInstance()
init();
Field field = PowerMockito.field(ThirdAppManager.class, "broadcastListener");
BroadcastListener broadcastListener = (BroadcastListener) field.get(mThirdAppManager);
broadcastListener.onUUIDBroadcast("", "", null);
Log.d(TAG + tag, "testOnUUIDBroadcast_1 结束");
}
2.对于静态方法
需要在测试方法上添加注解@preparefortest,然后使用mockStatic方法进行mock。
被测代码:
测试代码: