robotium判断是否有点击按钮


        1、Robotium的测试类ActivityInstrumentationTestCase2继承了 TestCase类,即robotiom的测试类是junit3的实例,并没有junit4的特征,比如通过annotate的方式来识别子类的新特征, 没不能实现@beforeclass,@afterclass等特征。只能通过写setup和teardown,以及test开头的测试用例的方式进行测 试case书写。

        2、有些button没有string,没有text,只能通过index来click这样很不直观,而且button的 index并不是固定的,有可能随着 控件重新加载,顺序也有可能发生变化,无法保证测试结果。查看了robotium源码,发现大多数click方法最终都是通过传入参数转成view,再调 用clickOnView,于是参照着写了一个通过button的ID来click的方法。Button的ID需要查看测试对象的源码中获取。比如导航中 就有菜单栏大多数据button就是这种类型的。

        3、有的activity点击后不能获取焦点,可以通过另外的方式获取activity的内 容,比如Activity act = solo.getCurrentActivity();获取当前的activity,然后通过act.findViewById的方式获取控件。

        4、多个屏幕的情况,可以通过滚屏的方式滑动,solo.scrollToSide(Solo.LEFT),如果多屏属于一个activity,则不需要滑动也能运行case获取数据。

        5、 有时text view或者button的click方法会失效,咋办?答案是在被测程序的AndroidManifest.xml文件里加上这么一 句:<supports-screens android:anyDensity="true"/>就行了。唉,当时为了找到这个解决方法可浪费了俺不少时间啊,最后在官网上找到答案了。

        6、 如果要想在robotium的测试程序里读写SD card肿么办?答案是在被测程序的AndroidManifest.xml文件里加上<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS">< /uses-permission>。注意是在被测程序里加上,在测试程序本身的manifest文件里加会很坑爹的。

        7、 listview动态添加item如何判断添加成功。可从添加前及添加后Item个 数判断,先确定添加item的属性,再通过相应的方法获取item。比如添加一个item可能需要三个textview,那么通过 getCurrentTextViews(View)前后获取到的个数差就相差三个。比如添加黑名单到黑名单列表。
            (1)有的listView只有web,或者主要是文本,可以通过getItemAtPosition(i).toString()的方法获取第几行的内容。
solo.clickOnText(chooseProvPage.getListView().getItemAtPosition(i).toString());

            (2)有的listView包含多个testView或者button,可以通过findViewById的方法得到某一行的一项的内容。
        8、无法捕获Toast,这个有点不明白。大概实验了一下,可以使用waitForText这个函数来捕获文字,这个方法返回值是布尔型的,所以返回true就是找到了。

        9、结果判断
            (1)waitForText
   该方法适用于点击操作后需要一点时间才返回结果的结果判断。比如联网操作,可以设置适当的延时,等待返回结果,判断结果更加正确。
            (2)assertActivity
   该方法适用于activity时,可以判断点击操作切换Activity是否正确,可以与waitfortext配合使用。
            (3)searchText+assert
   当有editText时,输入内容后,可通过searchText查找输入内容是否是预期结果,再将返回结果判断。
注:有些editText的内容无法通过searchText,原因暂时没找到。比如:手动添加黑名单时的名称及号码的输入框。


八、Robotium项目的运行:
 有两种方式,一种是通过eclipse;一种是通过命令行。

1、 eclipse
   Run as Android JUnit Test,可以跑整个测试工程,也可以跑单个测试用例。

2、命令行
adb install ****Test.apk
adb shell am instrument testpackagename/android.test.InstrumentationTestRunner


补充:
        Solo.clickOnActionBarHomeButton()
        该方法的目的就是点击ActionBar左上角的Home或者Up的icon导航到上一页



转载于:https://my.oschina.net/u/2603916/blog/624888

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值