[Android学习十一]Android开发单元测试


       网上关于Android单元测试的文字帖子不胜枚举,看完以后能解决问题是好事,不能解决问题那就是浪费时间和经历。大多数文章来自于这篇文章:http://rexstjohn.com/unit-testing-with-android-studio/java


       自从投入到Android Studio IDE以后基本上就赖着不走了。这里仅讨论AS(Android Studio)中Android单元测试。
 
 
      开发一个Android应用单元测试这种程序员的自我修养和基本道德测试是必不可少的。其单元测试分为两块,一块是依赖Android API(平台)的单元测试,一块是不依赖Android API的单元测试。
 
   
     1.不依赖AndroidAPI的单元测试
     
        这一块就和一般开发JavaSE,EE应用的单元测试同样,测试框架更加须要自行选择便可。在经过AS建立Android应用模块时,默认在build.gradle文件中添加了测试库junit依赖。


     若是在AS中使用不依赖AndroidAPI的单元测试,一图顶万言:android


wKiom1agjcCSriQ1AABZef3y67U911.pngwKioL1agjf3S6xY1AABetvcjU0I158.png

               

                                 图一                                                                                   图二程序员


    如图二所示,在Build Variants的Test Artifact设置为Unit tests以后,test源码目录呈现出IDEA风格的绿色目录。 这是就能够运行测试类或测试套件,比较容易就很少解释了。android-studio


   2. 依赖Android API的单元测试网络


      2.1 AS中配置Android单元测试框架


       Android基于junit3框架提供了Android的单元测试框架,要在Android中使用单元测试就须要依赖android.test包下的具体类。下面是AS中配置Android单元测试的方法:ide


   wKiom1agjt7R8Qb7AAEg-StiPA8246.png


                                                                                               图三   单元测试

  2.2 Android单元测试示例测试


    2.2.1 一个单元测试类:gradle

   

package secondriver.heathfood.test;

import android.test.InstrumentationTestCase;

import com.orhanobut.logger.Logger;

import secondriver.heathfood.App;
import secondriver.heathfood.logic.TianGou;
import secondriver.heathfood.pojo.FoodCla***esult;
import secondriver.heathfood.pojo.FoodDetail;
import secondriver.heathfood.pojo.FoodDetailResult;

/**
 * Author : secondriver
 * Created : 2016/1/20
 */
public class TestTianGou extends InstrumentationTestCase {

    public TianGou tianGou;

    public void setUp() {
        tianGou = new TianGou(App.restTemplate());
    }

    public void test_queryFoodClassByParentId1() {
        FoodCla***esult result = tianGou.queryFoodClassByParentId(0);
        assertTrue(result.isStatus());
    }
}

 


  

    关于Android的单元测试基类参见:

   http://www.oschina.net/question/54100_27061?fromerr=NydwIvQR 。

   http://www.uml.org.cn/mobiledev/201306074.asp

   

   注意:Android单元测试的测试类写法遵循的是Junit3.

 

   2.2.2 执行单元测试

   

   在执行单元测试以前,讲Build Variant的Test Artifact设置为图一所示值。  


   执行Android Tester以后,输出截图:


  wKiom1agkCewIdOgAAA9lXBzGLg080.png

                                  图四

  从截图上得知未授网络访问权权限。


  2.2.3 AS中Android单元测试控制台

wKiom1agkKiTGT5pAABnZo5LjPQ465.png

                                      图五



   在网上找关于Android单元测试的案例时,比较杂乱,遂做此文予以整理,Android单元测试如何去作当是另外的主题,须要参考android.test包中提供的具体类。



 文中的android测试类的包直接建立在了main代码目录下,比较好的方式以下Android测试代码目录结构图:


 wKiom1agl5rAgMotAABZK25bMQk778.png

               图 六

相关文章
相关标签/搜索