根据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的更多相关文章

  1. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...

  2. android+eclipse+mysql+servlet(Android与mysql建立链接)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原创地址  .作者信息和本声明.http://www.cnblogs.com/zhu520/p/7724524.html 经过两天的时间我终于把A ...

  3. Centos Android开发环境配置-Android Tools -android list sdk --extended --all

    Centos Android开发环境配置-Android Tools -android  list sdk --extended --all 安装完Android Tools后执行 android   ...

  4. 我的Android进阶之旅------>Android中AsyncTask源码分析

    在我的<我的Android进阶之旅------>android异步加载图片显示,并且对图片进行缓存实例>文章中,先后使用了Handler和AsyncTask两种方式实现异步任务机制. ...

  5. Android数据存储之Android 6.0运行时权限下文件存储的思考

    前言: 在我们做App开发的过程中基本上都会用到文件存储,所以文件存储对于我们来说是相当熟悉了,不过自从Android 6.0发布之后,基于运行时权限机制访问外置sdcard是需要动态申请权限,所以以 ...

  6. Android权限管理之Android 6.0运行时权限及解决办法

    前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...

  7. Android应用架构之Android MVP使用

    前两篇已经将Retrofit和RxAndroid应用到了项目中,这篇本打算直接将Dagger2引进项目,但是考虑到整个项目结构,就来个结构整理吧,一起来看看网上炒得火热MVP模式. 说到MVP就不得不 ...

  8. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

  9. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手

    原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...

随机推荐

  1. 翻译qmake文档(一) qmake指南和概述

    翻译qmake文档 目录 英文文档连接: http://qt-project.org/doc/qt-5/qmake-manual.html http://qt-project.org/doc/qt-5 ...

  2. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )

    对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...

  3. 知乎日报win10版 - 天天读报【开源】

    业余时间写的一个知乎日报win10版客户端,支持收藏,评论,点赞等. 商店地址:https://www.microsoft.com/zh-cn/store/apps/%E5%A4%A9%E5%A4%A ...

  4. HTML5+JS 《五子飞》游戏实现(三)页面和棋盘棋子

    前面两节,我们已经对<五子飞>有个初步的认识,对走棋路线也有了基本的了解,现在里沃特继续跟大家分享HTML页面,另外把棋盘棋子也画出来. 演示地址:http://www.lyout.com ...

  5. JS 获取上一层目录

    派生到我的代码片 <script type="text/javascript"> //返回当前工作目录 function GetCurrDir(){ var pathN ...

  6. Oracle Temp表空间切换

    来源于:  http://www.2cto.com/database/201507/418564.html 一.TEMP表空间作用 临时表空间主要用途是在数据库进行排序运算.管理索引.访问视图等操作时 ...

  7. 【BZOJ 3150】新Nim游戏

    http://www.lydsy.com/JudgeOnline/problem.php?id=3105 并不会QwQ 为什么贪心是正确的. 向小神请教了一个弱智问题(小神好神啊OTZ) 然后就写了一 ...

  8. 一起学HTML基础-CSS样式表-基本概念、分类、选择器

    一.基本概念: CSS  (Cascading Style Sheets)层叠样式表,是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. ...

  9. 【2016 ACM/ICPC Asia Regional Qingdao Online】

    [ HDU 5878 ] I Count Two Three 考虑极端,1e9就是2的30次方,3的17次方,5的12次方,7的10次方. 而且,不超过1e9的乘积不过5000多个,于是预处理出来,然 ...

  10. highchart去掉highcharts.com及导出

    右下角默认会有highcharts.com credits: { enabled:false} 导出服务用于Highcharts导出功能,即通过导出服务器将图表导出为常见图片格式或 PDF 文档. 默 ...