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 试图中看结果。

(未完待续)

Unit Test for Android,布布扣,bubuko.com

时间: 2024-10-28 15:24:55

Unit Test for Android的相关文章

(4.5.4)Android测试TestCase单元(Unit test)测试和instrumentationCase单元测试

Android单元和instrumentation单元测试 Developing Android unit and instrumentation tests Android的单元测试是基于JUnit的.可分为: 1.本地单元测试 - 可以在JVM上运行测试(速度快,优先考虑). 2.Instrumented单元测试 - 需要Android系统 Android的Gradle插件支持在JVM上执行Andr??oid单元测试.它使用特殊版本的android.jar(也称为 Android mocka

JUnit in android

android 测试框架是基于JUnit(www.junit.org)的,感兴趣的可以看看JUnit的源码,相信会对做unit test in android 大有帮助的. 本文只是一篇介绍JUnit如何用于android的入门文字,更多是照着网上的敲出来的,很意外的是三星的官网上居然有介绍JUnit的文章, 哈哈,所以拿过来用了.以前也没做过unit test,JUnit也是最近才接触,记录一下,边学边用吧!! 英文还OK的可以直接看原文(click me)吧!! JUnit的基本思路: a

Android 自己的自动化测试(2)依据ID查找对象(java)

前一篇文章是写 Android 自己的自动化测试(1)如何安装和卸载应用程序(java) ,以下再探索一下假设在普通java应用程序中,依据ID来查找对象 1.类库依赖: The library dependencies are: chimpchat.jar,common.jar,ddmlib.jar,guava-13.0.1.jar,sdklib.jar,hierchyviewer2lib.jar They can all be found in the sdk/tools/lib subdi

delphiXE7关于android API的使用和检测WIFI状态的问题

在大富翁论坛上有一篇介绍delphi xe5下获取网络状态的文章并附带了一个Androidapi.JNI.Network.pas单元,我使用到XE7下,编译后点击按钮就出来一个错误对话框什么10027什么的,开始我以为是不通用那,我就利用 爱吃猪头肉 QQ: 1444386932 提供的jar转换工具转换了安卓jar包中的文件,正常运行后还是提示错误,后来发现是原来delphi编译器没有设置安卓的权限,可是这也让我稍微学习到一点,只要将安卓的jar文件转换下能让delphi调用,应该是所有的ap

delphi xe6 让 ListView 在 Android 可回弹[根据龟山阿卍原创修改为xe6版本]

Delphi XE6 找出 FMX.Platform.Android.pas 档案,并复制到自己的 Project 路径里,找到 GetScrollingBehaviour 函数,修改成如下: unit FMX.Platform.Android; function TPlatformAndroid.GetScrollingBehaviour: TScrollingBehaviours; begin Result := [TScrollingBehaviour.BoundsAnimation{可回

delphiXE7关于android 检测屏幕是否处于关闭状态

unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Layouts, FMX.Memo; type TForm1 = class(TForm) Button1: TButton

关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10

转载请标明出处,否则死全家.选择[复制链接]即可得到出处. (* ************************************************ *)(* *)(* *)(* 设计:爱吃猪头肉 & Flying Wang 2015-04-15 *)(* 上面的版权声明请不要移除. *)(* *)(* ************************************************ *) 本人所在的群(① FireMonkey[移动开发] 165232328) 对

在Andoid开发中使用MVP模式来解耦,增加可测试性

by Jeff Angelini posted on 7/20/2011 2:35:00 PM Separating the presentation of the application’s UI from the logic of its UI is usually a good idea. This separation of concerns creates more de-coupled code, which is much cleaner, and even allows for

Visual Studio for Mac第四预

微软发布Visual Studio for Mac第四预览版 去年 11 月,微软发布了 Visual Studio for Mac 的首个预览版本,并且承诺后续数月会带来更多功能.而今天,随着 Visual Studio 2017 的正式发布,Visual Studio for Mac 也迎来了第四个预览版本.Xamarin 团队的 Miguel de Icaza 解释到:"Visual Studio for Mac Preview 4 增添了许多新功能,包括 Xamarin 和 .NET C