Robotium学习

Robotium学习Robotium是一个基于模拟点击事件的用于进行黑盒测试的android测试工具。1.AndroidJUnitAndroid自动测试沿用Java中的JUnit创建测试类的时候,继承 ActivityInstrumentationTestCase2即可。其中MainActivity为测试时进入的首个界面。由于继承于JUnit因此在s

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Robotium是一个基于模拟点击事件的用于进行黑盒测试的android测试工具。


1. Android JUnit

Android自动测试沿用Java中的JUnit

创建测试类的时候,继承 ActivityInstrumentationTestCase2<MainActivity> 即可。

其中MainActivity为测试时进入的首个界面。

由于继承于JUnit

因此在 setUp()中进行准备工作

在    tearDown()中回收资源

测试主体在名为  testXXX() 内。

如果有多个testXXX()函数,则都会被执行,但不保证顺序。因此前提条件都应在setUp()中写好。


2.使用Robotium

要在 android junit 中使用robotium工具Solo. 需要添加成员变量(不需要公开的内容,就不要使用public)

protected Solo solo;

并在setUp()中初始化:

solo = new Solo( getInstrumentation(), getActivity() );

在tearDown()中回收:

 solo.finishOpenedActivities();



3.基本API

完整 API:http://robotium.googlecode.com/svn/doc/index.html

个人常用:

solo.getView(R.id.X);                         通过 R.id.X得到View的指针(记得引用被测试工程的 .R, X是目标id)
solo .getView(R.id.X, int index)           如果有多个同名view, 用index指定是第几个。

solo.clickLongOnView( View )              最常用的点击函数

solo.clickOnView(solo.getView(R.id.X));     二者合用

#如果 R.id.X在当前界面不可见,会出Bug. 如果不确定其存在(如更新提示),先用solo.waitForView(Id, matchTime,  timeout)确保其存在

solo.getCurrentActivity()                       得到当前activity的context, 可以直接操作。我一般用来判断是否为预期activity如:

     if( !(solo.getCurrentActivity() instanceof  myActivity) )

solo.enterText( View, String)                 在View 输入指定的字符串


solo.sleep(int time)                            等待一段时间,单位为毫秒。一般是为了让程序点击后有足够时间来响应

solo.takeScreenshot(String name);       屏幕截图,名称为name. 保存在/sdcard/Robotium-Screenshots/足够时间来

solo .waitForActivity(myActivity.class , int timeout)  等待某个activity
solo .assertCurrentActivity(String msg , myActivity.class );  如果不是预期activity则报错并输出 msg

solo.drag(x0, x1, y0, y1, step)                    模拟从(x0,y0)拖拽到(x1,y1)共step步。屏幕左上角为(0, 0) 
solo .scrollToTop();                                      把屏幕拉倒最上方(复位用)
solo.goBack()                                                模拟点击退回键
solo.goBacktoActivity(“ActivityName”)      回到名为ActivityName的界面
solo.clickInList(int index);                             点击listView中的第index项。不推荐使用,经常出问题。直接用getView(R.id.X, index)再点击。当前前提是点击对象有id
solo.scrollToSide(Solo.RIGHT);                  从右往左滑动屏幕

solo.scrollViewToSide(View, Solo.RIGHT); 把指定 View从右往左滑动

4. 获得View id的方式
${android-sdk}/tools/hierarchyviewer.bat  或者 
${android-sdk}/tools/monitor.bat 然后Inspect 就可以看到每个View的id(如果有的话)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160067.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eclipse首选项里面没有Server(eclipse的server视图)

    学习JavaWeb需要安装tomcat,但一直找不到sever选项,很苦恼下面将详细介绍eclipse中servers不见了的解决方法。    ①在软件eclipse下的Help-&gt;InstallNewSoftware-&gt;中,在Workwith中点击Add,如下,加入Name——"Kepler"repository;Location——http://downlo…

    2022年4月17日
  • ajax如何解决跨域_除了jsonp还有什么跨域方式

    ajax如何解决跨域_除了jsonp还有什么跨域方式$.ajax({url:url,//路径async:false,//同步type:”get”,//请求方式dataType:”jsonp”,//跨域jsonp:”callback”,//回调函数的参数名data:data,cache:false,/*发送前执行方法*/beforeSend:function(){},/*成功…

    2022年8月24日
  • 在系统设计中应用迪米特法则_软件设计原则口诀

    在系统设计中应用迪米特法则_软件设计原则口诀  迪米特原则又叫 迪米特法则/最少知道原则。现在我们给出迪米特原则的定义:一个对象应该对其他对象保持最少的了解。它的优点是降低了类之间的耦合。它强调只和朋友交流,不和陌生人说话。其中朋友是指出现在成员变量、方法的输入、输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。 下面我们通过代码,更好的解释迪米特原则。比如我是一个公司的老板,我开了一家网上课程网站,我让我的…

    2022年11月2日
  • Verilog 流水线设计[通俗易懂]

    Verilog 流水线设计[通俗易懂]一、什么是流水线流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。二、什么时候用流水线设计使用流水线一般是时序比较紧张,对电路工作频率较高的时候。典型情况如下:1)功能模块之间的流水线,用乒乓buffer来交互数据。代价是增加了memory的数量,但是和获得的巨大性能提升相比,可以忽略不计。2)I/O瓶

    2022年8月14日
  • JAVAdebug_java如何设置断点

    JAVAdebug_java如何设置断点大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。以eclipse为例,debug的用法:1、首先在一个java文件中设断点,然后debugas,opendebugDialog,然后在对话框中选类后,Run。2、F5键与F6键均为单步调试,F5是stepinto,也就是进入本行代码中执行,F6是stepover,也就是执行本行代码,跳到下一行。3、F7是跳出函数,F8是…

    2022年10月15日
  • NOIp2011数字反转「建议收藏」

    NOIp2011数字反转「建议收藏」题解:本题考查循环的使用和用一个数字表示一个多位数。代码如下:“`cppincludeusingnamespacestd;intmain(){intn,a=0;cin&amp;amp;amp;gt;&amp;amp;amp;gt;n;while(n!=0){a=a*10+n%10;n=n/10;}cou…

    2022年9月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号