1. 主要功能
使用此方法可以处理中断问题,从而保证测试用例的正常运行。
2. 相关API
API | 说明 |
registerWatcher (String name, UiWatcher watcher) | 注册一个监听器,当无法匹配到对象的时候,触发监听器 |
removeWatcher (String name) | 取消之前注册的指定的监听器 |
resetWatcherTriggers () | 重置已出发过的UiWatcher |
runWatchers () | 运行所有的监听器 |
3.简单示例
3.1 用例代码
1 @Test 2 public void testCase09() throws InterruptedException { 3 4 final UiObject2 ui = mDevice.findObject(By.text("短信")); 5 //注册监听器 6 mDevice.registerWatcher("testWatcher", new UiWatcher() { 7 @Override 8 public boolean checkForCondition() { 9 if(mDevice.hasObject(By.text("联系人"))){ 10 ui.click(); 11 Log.i("testWatcher", "监听器被触发了"); 12 return true; 13 } 14 Log.i("testWatcher", "监听器未被触发"); 15 return false; 16 } 17 }); 18 19 //运行用例步骤 20 mDevice.wait(Until.findObject(By.text("写短信")), 2000); 21 UiObject2 btn = mDevice.findObject(By.text("写短信")); 22 btn.click(); 23 Thread.sleep(2000); 24 mDevice.pressBack(); 25 26 //重置监听器 27 mDevice.resetWatcherTriggers(); 28 mDevice.wait(Until.findObject(By.text("写短信")), 2000); 29 btn.click(); 30 Thread.sleep(2000); 31 mDevice.pressBack(); 32 Log.i("testWatcher", "重置监听器成功"); 33 34 //移除监听器 35 mDevice.removeWatcher("testWatcher"); 36 Log.i("testWatcher", "移除监听器成功"); 37 mDevice.wait(Until.findObject(By.text("写短信")), 2000); 38 btn.click(); 39 Thread.sleep(2000); 40 mDevice.pressBack(); 41 42 }
3.2 运行结果
原创:http://blog.csdn.net/swordgirl2011/article/details/51010683