[原文]http://blog.csdn.net/benweizhu/article/details/8510136
[转载]http://my.oschina.net/youxiachai/blog?disp=2&p=1
为了实现比较良好的单元测试,需要一系列代码结构优化和测试工具使用的辅助。
在做深入说明Android系统开发结构之前,先来看一下在该平台开发时所常见的工具和相应的优缺点对比,如表1所示。
自动化的 UI 测试
目前能免费进行android UI的自动化测试的方法有以下三种:
Monkey&MonkeyRunner | android 的Junit 测试框架 | Robotium | |
---|---|---|---|
入门难度 | 一般 | 困难 | 非常简单 |
功能方面 | 很一般 | 无所不能 | 基本满足 |
关于Monkey & MonkeyRunner可以参考本人写的另外两篇
android实用测试方法之Monkey与MonkeyRunner (评论部分有些常见问题及部分解决有兴趣的可以大概浏览一下)
增强型MonkeyRunner 脚本计划 (算是一个小小的实践吧)
说下,Monkey&MonkeyRunner
优点: 上手简单,只需要apk
缺点: 文档少,容易出错,编写脚本需要python基础.
android 的Junit
关于这个内容我曾经做个一个小小的视频,后来上传到了优酷
[Android 测试入门教程之activity简单测试]http://v.youku.com/v_show/id_XMzYxNDE4MDE2.html
说下, android for Junit
优点: 无所不能…
缺点: 上手不容易,需要源码.
Robotium
本文重点简介的方法….
说下,Robotium
优点: 足够简单,足够强大,支持apk测试
缺点: 还不能替代android for Junit
愉快的UI测试之旅 by Robotium
Robotium 是一个开源项目:
http://code.google.com/p/robotium/
目前最新版本:Robotium 3.1 is now released!
竟然,要做测试,我们要新建一个用于测试的项目:
直接下载项目吧….
http://vdisk.weibo.com/s/3feB5
然后,创建一个android的测试项目..
1,创建项目
2, 选择要测试的项目
3,完成
4,把Robotium导入到测试项目里面,顺便说一下:ADT 17 预览版 4已经支持自动把libs下的jar包导入到依赖环境中…用之前版本的朋友手动添加吧…
编写第一个UI测试方法
public class FootTabClickTest extends ActivityInstrumentationTestCase2 {
//1,创建一个自动化测试对象
private Solo tabSolo;
public FootTabClickTest () {
super("com.achai",TabViewActivity.class);
}
@Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
//2,初始化我们的测试对象
tabSolo = new Solo(getInstrumentation(), getActivity());
}
@Smoke
public void testClickEachTab(){
//3,获取我们view 中所有的单选按钮,没错就是这么简单…
ArrayList radioGroup = tabSolo.getCurrentRadioButtons();
//4,自动点击每个单选按钮
for(int i=0; i < radioGroup.size(); i++){
tabSolo.clickOnRadioButton(i);
//5,暂停1s 用来看效果的…
tabSolo.sleep(1000);
}
//6,又一个强大的功能,直接识别点击当前view中匹配的文本,与控件无关!!!!!!!
tabSolo.clickOnText("(?i).*?我的收藏.*");
tabSolo.sleep(1000);
//7,这个是长按,注意留意动画
tabSolo.clickLongOnText("返回");
tabSolo.sleep(2000);
// tabSolo.clickOnRadioButton(1);
}
@Override
protected void tearDown() throws Exception {
// TODO Auto-generated method stub
super.tearDown();
}
}
效果动画:
[某android平板项目开发笔记--自定义sharepreference UI]http://my.oschina.net/youxiachai/blog/42337