robotium步骤和模板
2016-02-17 19:29
309 查看
Robotium是一款国外的开源测试框架,使用人数非常多,有着比较完善的api和说明文档,同时可以进行黑盒和白盒测试,可以说是一个非常强大的框架了,不过如果是纯黑盒我还是偏向用UiAutomator了,看个人吧。
Robotium是在Android的单元测试工具上的二次封装而来的,是对Instrumentation的扩展。意味着创建步骤其实和用Instrumentation是很像的,下面简述步骤。
步骤:
1.创建测试工程(Android Test Project)
2.指定被测项目(可以在创建引导的时候指定,也可以后续在manifest里面改)
3.检查manifest.xml文件,如果是工具自动创建的,一般就不用配,否则要配置instrumentation和uses-library两个标签
4.右键工程,配置java build path,添加robotium的jar包进去(网上教程都是建立lib文件夹然后导入,都可以了)
5.建立你自己的测试类Junit Test Case(我这里用的还是juni3),继承自ActivityInstrumentationTestCase2这个类(等会要补充这些继承关系)
6.编写构造方法,以及你的测试程序了,核心是solo类。
7.运行只要右键运行为Run as -->Android Juni Test就可以啦
模板:
基本上用例都是基于这个模板出来的,重点:
1.继承自ActivityInstrumentationTestCase2,编写构造方法传入要测试的Activity
2.成员变量声明solo类
3.在setup()方法或者@Before(这是juni4的断言)方法实例化solo对象
4.在teardowm()方法或者@After方式结束所有打开的Activity
5.在testXXX方法写你的测试用例
这里补上Android测试框架的继承图(图片来自网上):
Robotium是在Android的单元测试工具上的二次封装而来的,是对Instrumentation的扩展。意味着创建步骤其实和用Instrumentation是很像的,下面简述步骤。
步骤:
1.创建测试工程(Android Test Project)
2.指定被测项目(可以在创建引导的时候指定,也可以后续在manifest里面改)
3.检查manifest.xml文件,如果是工具自动创建的,一般就不用配,否则要配置instrumentation和uses-library两个标签
4.右键工程,配置java build path,添加robotium的jar包进去(网上教程都是建立lib文件夹然后导入,都可以了)
5.建立你自己的测试类Junit Test Case(我这里用的还是juni3),继承自ActivityInstrumentationTestCase2这个类(等会要补充这些继承关系)
6.编写构造方法,以及你的测试程序了,核心是solo类。
7.运行只要右键运行为Run as -->Android Juni Test就可以啦
模板:
基本上用例都是基于这个模板出来的,重点:
1.继承自ActivityInstrumentationTestCase2,编写构造方法传入要测试的Activity
2.成员变量声明solo类
3.在setup()方法或者@Before(这是juni4的断言)方法实例化solo对象
4.在teardowm()方法或者@After方式结束所有打开的Activity
5.在testXXX方法写你的测试用例
public class testDEMO extends ActivityInstrumentationTestCase2 { Solo solo; public testDEMO() { super(MainActivity.class); // TODO Auto-generated constructor stub } protected static void tearDownAfterClass() throws Exception { } protected void setUp() throws Exception { solo = new Solo(getInstrumentation(),getActivity()); } protected void tearDown() throws Exception { solo.finishOpenedActivities(); } public void testDEMO(){ } }
这里补上Android测试框架的继承图(图片来自网上):
相关文章推荐
- Qt实现类似sendmessage和postmessage发送自定义消息
- 蚁视头盔上手简评
- hibernate4之一对多自身映射(四)
- iOS环信3.0集成 (一)SDK的集成
- Divisor Summation_
- matlab坐标轴axes对象句柄消失的解决办法
- 进程和线程的区别与联系是什么?
- POJ 3279反转问题,dp
- iOS中UITextView的字数限制
- 为什么会出现数据安全问题?资源抢夺有哪些解决办法
- 查询oracle表的信息(表,字段,约束,索引)
- 必须掌握的八种排序(5-6)--冒泡排序,快速排序
- 对UIView、UIWindow和CALayer的理解
- 九度[1120]全排列
- PHP的异常处理机制
- Unity全景项目经验Q&A
- Pch文件的主要作用 和分类Category的作用
- XML解析
- Linux 系统 常用 命令学习(1)
- 那些上传AppStore遇到的坑