当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]最近在用Robotium框架做自动化测试,遇到一个问题,就是sendKey()方法报错。本质的原因是因为我测试的应用有一个bug,当我选择若干次goback()后应该退出到应用软件的主界面

最近在用Robotium框架做自动化测试,遇到一个问题,就是sendKey()方法报错。

本质的原因是因为我测试的应用有一个bug,当我选择若干次goback()后应该退出到应用软件的主界面,但是却直接退出应用了。

我查了一下源代码:

01 public void goBackToActivity(String name)
02 {
03 boolean found = false;
04 for(Activity activity : activityList){
05  if(activity.getClass().getSimpleName().equals(name))
06   found = true;
07 }
08  
09 if(found){
10  while(!getCurrentActivity().getClass().getSimpleName().equals(name))
11  {
12   try{
13    inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
14   }catch(SecurityException e){
15    Assert.assertTrue("Activity named " + name + " can not be returned to"false);
16   }
17  }
18 }
19  
20 else{
21  for (int i = 0; i < activityList.size(); i++)
22   Log.d("Robotium""Activity priorly opened: "+ activityList.get(i).getClass().getSimpleName());
23  Assert.assertTrue("No Activity named " + name + " has been priorly opened"false);
24 }
25  
26 }

如果在一个非测试应用的界面,做sendkey操作就会抛出SecurityException异常。

日志如下:

02-23 10:29:25.343: INFO/TestRunner(22963): junit.framework.AssertionFailedError: Can not complete action!

02-23 10:29:25.343: INFO/TestRunner(22963): at junit.framework.Assert.fail(Assert.java:47)

02-23 10:29:25.343: INFO/TestRunner(22963): at junit.framework.Assert.assertTrue(Assert.java:20)

02-23 10:29:25.343: INFO/TestRunner(22963): at com.jayway.android.robotium.solo.RobotiumUtils.sendKeyCode(RobotiumUtils.java:56)

02-23 10:29:25.343: INFO/TestRunner(22963): at com.jayway.android.robotium.solo.Solo.sendKey(Solo.java:1792)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭