android项目测试

1:   单元测试(又称为模块测试)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。


单元测试的步骤如下:

1:

Menifest.xml中加入:

<application>中加入:

<uses-library android:name="android.test.runner" />

eg:

  1. <application  
  2.         android:icon="@drawable/ic_launcher"  
  3.         android:label="@string/app_name" >  
  4.         <uses-library android:name="android.test.runner" /> 


2:

<application>外面加入:

<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />

<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="name.feisky.android.test"

android:label="Test for my app"/>

eg:

  1.  <instrumentation  
  2.         android:name="android.test.InstrumentationTestRunner"     就是我们的完整类名
  3.         android:label="Test for my app"  
  4.         android:targetPackage="com.andyidea.demo"/></span>  
  5. </manifest>  


3:编写单元测试代码:必须继承自AndroidTestCase

eg:


  1. public class JUnitService {  
  2.       
  3.     public int add(int a, int b){  
  4.         return a+b;  
  5.     }  
  6.   
  7. }  


  1. public class MyJnuitTest extends AndroidTestCase {  
  2.       
  3.     public void testAdd() throws Exception{  
  4.         JUnitService js = new JUnitService();  
  5.         int sum = js.add(1, 2);  
  6.           
  7.         Assert.assertEquals(3, sum);  
  8.     }  
  9.   
  10. }  

  1. 测试 Run As... > Android JUnit Test

单元测试方式二:

其实这种方式更加简单,这种方式是单独创建一个单元测试的工程来进行测试。即创建一个 Android Test Project ,然后选择需要单元测试的项目就OK了,通过这种方式进行单元测试的话就不用进行上面的配置,其实创建这种工程的时候,默认已经帮我们配置好了。如何进行测试和上面的方式一样,在这里就不详细讲解了。

这里需要说明的是SDK版本需是1.5或者更高。

1.Eclipse中,选择New > Project > Android > Android Test Project 。

2:然后按如下方式,填写  Test Project名称:HelloAndroidTest

3:Test Target:选择“An existing Android project”,然后点Browse,选择以前建的“HelloWorld”,以前没有的,可以新建立一个。

3.点finish,新建的这个测试工程就会在Eclipse中出现。

现在你就有了一个名为HelloAndroidTest的测试工程。下一步要做的就是定义一个test case类,这里这个test case需要继承Android的用于测试Activitiestest case类,android中的这个test case类包含四个方法:


1.HelloAndroidTest:定义了这个类的构造器。

2.setUp():这个方法重写了JunitsetUp()方法,主要用于初始化测试环境。

3.testPreconditions():这个方法用于保证“Hello Android”程序能够正常启动起来。

4.testText():这个用于屏幕显示,显示的内容和程序的String资源是一样的。

在刚建立的测试工程的src的包下,新建一个名为“HelloAndroidTest”的类,继承自android.test.ActivityInstrumentationTestCase2<HelloAndroid>,父类的参数是要被测试程序的Activity,其他的地方不要改。


所以一个完整的测试类,应该如下:

  1. public class HelloAndroidTest extends ActivityInstrumentationTestCase2<HelloAndroidActivity> {  
  2. //要被测试的activity  
  3. private HelloAndroidActivity mActivity;  
  4.     private TextView mView;  
  5.     private String resourceString;  
  6.       
  7. public HelloAndroidTest() {//构造器,Android测试框架所必须的  
  8.       super("com.yaozq.helloandroid", HelloAndroidActivity.class);  
  9. }  
  10. @Override  
  11.     protected void setUp() throws Exception {//初始测试环境  
  12.         super.setUp();  
  13.         mActivity = this.getActivity();  
  14.         mView = (TextView) mActivity.findViewById(com.yaozq.helloandroid.R.id.textview);  
  15.         resourceString = mActivity.getString(com.yaozq.helloandroid.R.string.hello);  
  16.     }  
  17. public void testText() {//测试字符串资源  
  18. assertEquals(resourceString,(String)mView.getText());  
  19. }  
  20. public void testPreconditions() {//测试条件,只运行一次,主要用来检查要被测试的程序是否被整成初始化  
  21. assertNotNull(mView);  
  22. }  
  23. }  

然后在项目名称上点右键Run As>Android JUnit Test,这样ADT插件就会启动测试程序和被测试程序,当这两个程序都运行起来之后,Android测试框架就会在EclipseJUnit视图中报告测试结果。




  1. 添加测试用例类

    添加新类,基类设置为android.test.ActivityInstrumentationTestCase2<HelloAndroid>


  1. 添加构造函数

    添加setUp()方法,这个方法在所有的测试之前进行变量和测试环境的初始化。

    @Override

        protected void setUp() throws Exception {

            super.setUp();

            mActivity = this.getActivity();

            mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview);

            resourceString = mActivity.getString(com.example.helloandroid.R.string.hello);

        }


  1. 添加testPreconditions()方法,检查初始化环境,只执行一次

    public void testPreconditions() {

          assertNotNull(mView);

        }


  1. 添加单元测试

    public void testText() {

          assertEquals(resourceString,(String)mView.getText());

        }











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值