[Android]Unit Test for Android
根据Android Developer文档,对Android的UT做个学习总结:
1. 搭建Eclipse测试环境。
Eclipse的ADT(Android Developer Tools) 插件为我们提供了通过GUI来创建、运行Android 测试用例的集成开发环境。
在Eclipse中,通过如下步骤来为你的Android应用创建测试项目:
a. 右键Android应用, 选择Android Tools —> New Test Project
b. 根据测试项目创建向导,为你的测试项目设置相应的属性。
2. 创建测试用例
最好为项目的每一个Activity都创建一个测试类。
每个测试用例大体包括三个部分:
a. Test Fixture, 就是一些为了跑你的测试方法而需要被初始化的对象。
b. Preconditions test method, 一些前置条件的测试方法,用来确保你要测试的对象是否被正确初始化了。另外还有setUp()、tearDown()方法, 测试程序会在调用任何其他测试方法之前调用setUp()方法,调用 其他测试方法之后调用tearDown()方法。可以在setUp()方法中初始化你要测试的对象。
c. 与具体Activity相关的测试方法。
步骤:
a. 默认情况下,测试项目建完会为你创建一个叫<your_app_package_name>.tests的包,如果没有,自己建一个。
b. 在a中的创建的包里,为你将要测试的Activity创建一个名为<your_app_activity_name>Test
的测试类, 如
。MyFirstTestActivityTest
c. 编写测试类。测试类必须要继承ActivityTestCase
类的一个子类,如
publicclassMyFirstTestActivityTest
extendsActivityInstrumentationTestCase2<MyFirstTestActivity>{ private MyFirstTestActivity mFirstTestActivity; //你要测试的Activity
private TextView mFirstTestText; public MyFirstTestActivityTest(){
super(MyFirstTestActivity.class);
} @Override
protectedvoid setUp()throwsException{
super.setUp(); //必须调用父类的setUp方法, JUnit的要求
mFirstTestActivity = getActivity(); //获取一个你要测试的Activity的引用
mFirstTestText =
(TextView) mFirstTestActivity
.findViewById(R.id.my_first_test_text_view);
} publicvoid testPreconditions(){ //用来确保你的Test Fixture,即你要测试的对象是否被正确初始化了。
assertNotNull(“mFirstTestActivity is null”, mFirstTestActivity); //如果为false,抛出AssertionFailedError
异常, 第一个参数用来输出提示,为true,测试通过
assertNotNull(“mFirstTestText is null”, mFirstTestText); //不管为true还是false,测试程序都会调用其他的测试方法
} publicvoid testMyFirstTestTextView_labelText(){ //具体的测试类, 放在testPreconditions()方法之后——先做初始化验证
finalString expected =
mFirstTestActivity.getString(R.string.my_first_test);
finalString actual = mFirstTestText.getText().toString();
assertEquals(expected, actual);
}
} d. 运行测试用例。连接一个模拟器或手机,确保在设置--开发者选项中将USB Debugging打开了。右键你的测试类,选择Run As --> Android Junit Test. 然后选择要运行的设备,开始跑测试。在Junit 试图中看结果。 (未完待续)
[Android]Unit Test for Android的更多相关文章
- 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...
- android+eclipse+mysql+servlet(Android与mysql建立链接)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原创地址 .作者信息和本声明.http://www.cnblogs.com/zhu520/p/7724524.html 经过两天的时间我终于把A ...
- Centos Android开发环境配置-Android Tools -android list sdk --extended --all
Centos Android开发环境配置-Android Tools -android list sdk --extended --all 安装完Android Tools后执行 android ...
- 我的Android进阶之旅------>Android中AsyncTask源码分析
在我的<我的Android进阶之旅------>android异步加载图片显示,并且对图片进行缓存实例>文章中,先后使用了Handler和AsyncTask两种方式实现异步任务机制. ...
- Android数据存储之Android 6.0运行时权限下文件存储的思考
前言: 在我们做App开发的过程中基本上都会用到文件存储,所以文件存储对于我们来说是相当熟悉了,不过自从Android 6.0发布之后,基于运行时权限机制访问外置sdcard是需要动态申请权限,所以以 ...
- Android权限管理之Android 6.0运行时权限及解决办法
前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...
- Android应用架构之Android MVP使用
前两篇已经将Retrofit和RxAndroid应用到了项目中,这篇本打算直接将Dagger2引进项目,但是考虑到整个项目结构,就来个结构整理吧,一起来看看网上炒得火热MVP模式. 说到MVP就不得不 ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
随机推荐
- java并发:阻塞队列
第一节 阻塞队列 1.1 初识阻塞队列 队列以一种先进先出的方式管理数据,阻塞队列(BlockingQueue)是一个支持两个附加操作的队列,这两个附加的操作是:在队列为空时,获取元素的线程会等待队列 ...
- [BZOJ2429][HAOI2006]聪明的猴子(MST)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2429 分析:要让最大的最小,所以就是最小生成树上的啦,于是问题就变成了有多少个猴子&g ...
- 维克里拍卖 Vickrey auction
https://en.wikipedia.org/wiki/Vickrey_auction 维克里拍卖(Vickrey auction),即次价密封投标拍卖(Second-price sealed-b ...
- C#中的数组,多维数组和交错数组
想研究一些面向对象的东西,也许是代码写得还不够多.感觉还不好,看那些教程,不是嫌太水就是太难看不懂.心情很是落寞 不过再怎样也要坚持每天发一篇博客. 这篇来说一下C#中的数组,多维数组,交错数组的一些 ...
- android listview 的监听事件
今天遇到了一个比较让我头疼的问题,不过追根揭底只是我对listview理解的不够透彻罢了, 闲言少叙,说说我遇到的问题吧: 上篇随笔我写了关于listview的使用,如果你也已经写好了列表那么恭喜这一 ...
- Python基础-列表_元组_字典_集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- springMVC之servlet-config.xml配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- [Google Guava]学习--新集合类型BiMap
BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构. Bimap 能非常方便的实现map<key,value>的转置要求,也就是value变为key,key变 ...
- 【BZOJ 1023】【SHOI 2008】cactus仙人掌图
良心的题解↓ http://z55250825.blog.163.com/blog/static/150230809201412793151890/ tarjan的时候如果是树边则做树形DP(遇到环就 ...
- 强连通 HDU3072
n个点m条边 m条边 权值 简单点说就是求把所有强连通分量连在一起所需的最小花费 不用双向 图是联通的 cost[] 维护到这里的最小花费求和 #include<stdio.h> #in ...