zoukankan      html  css  js  c++  java
  • [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 试图中看结果。

    (未完待续)
  • 相关阅读:
    浅析JNI
    网易云音乐歌词下载器
    如何用一个SQL“搞挂”一个服务模块
    SpingBoot 1.5.2,MultipartFile保存图片时的不稳定异常(好像和内置tomcat有关)
    double 去除小数点后的0
    项目中时间处理----今天:时分(10:15),昨天/前天:(昨天/前天),除此之外的本周(星期几),再往前年.月.日(2017.06.15)
    SpringMvc 静态内部类 封装请求数据
    jsp页面 ajax提交数组 到struts2的action
    Struts2 s:if test判断时遇到的问题
    Struts2中 iterator隔行变色
  • 原文地址:https://www.cnblogs.com/spec-dog/p/3722083.html
Copyright © 2011-2022 走看看