junit

在android的开发的过程中,经常需要对业务方面的代码进行测试,熟悉java的人都知道junit,在android中google提供了基于junit为android进行了优化得自动化框架junit。在java中使用junit编写测试用例,我们需要继承TestCase,在android中需要继承AndroidTestCase。下面使用例子说明:

我们有如下的业务类:

  1. package com.mxy.service;  
  2.   
  3. public class CalcService {  
  4.   
  5.     public int add(int a,int b) {  
  6.         System.out.println("执行了加方法");  
  7.         return a + b;  
  8.     }  
  9. }  
package com.mxy.service;

public class CalcService {

	public int add(int a,int b) {
		System.out.println("执行了加方法");
		return a + b;
	}
}

下面我们就可以编写一个测试类,如下:
  1. package com.mxy.test;  
  2.   
  3. import com.mxy.service.CalcService;  
  4.   
  5. import android.test.AndroidTestCase;  
  6.   
  7. public class CalcServiceTest extends AndroidTestCase {  
  8.       
  9.     public void testAdd() {  
  10.         CalcService cal = new CalcService();  
  11.         int result = cal.add(5,3);  
  12.         System.out.println(result);  
  13.         assertEquals(8, result);  
  14.   
  15.     }  
  16.   
  17. }  
package com.mxy.test;

import com.mxy.service.CalcService;

import android.test.AndroidTestCase;

public class CalcServiceTest extends AndroidTestCase {
	
	public void testAdd() {
		CalcService cal = new CalcService();
		int result = cal.add(5,3);
		System.out.println(result);
		assertEquals(8, result);

	}

}
这时候我们可以在项目上点击Run As---->Android Junit Test,这时候会将我们开发的app,安装到手机或者模拟器上,然后运行我们的测试用例。很不幸这时候我们会出现如下的错误:

  1. 01_junit does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml  
01_junit does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml
这是因为我们还有写地方没有配置,这时候我们打开我们的AndroidMainfest.xml,添加如下红色(由于红色无法正常显示,这里表示<span style="color:#ff0000;">包围的代码)代码:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.mxy"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="8"  
  9.         android:targetSdkVersion="18" />  
  10.     <span style="color:#ff0000;"><instrumentation android:name="android.test.InstrumentationTestRunner"  
  11.     android:targetPackage="com.mxy"  
  12.     android:label="your tests label" /></span>  
  13.   
  14.     <application  
  15.         android:allowBackup="true"  
  16.         android:icon="@drawable/ic_launcher"  
  17.         android:label="@string/app_name"  
  18.         android:theme="@style/AppTheme" >  
  19.         <span style="color:#ff0000;"><uses-library android:name="android.test.runner" /></span>  
  20.         <activity  
  21.             android:name="com.mxy.MainActivity"  
  22.             android:label="@string/app_name" >  
  23.             <intent-filter>  
  24.                 <action android:name="android.intent.action.MAIN" />  
  25.                 <category android:name="android.intent.category.LAUNCHER" />  
  26.             </intent-filter>  
  27.         </activity>  
  28.     </application>  
  29.   
  30. </manifest>  
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mxy"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    <instrumentation android:name="android.test.InstrumentationTestRunner"
	android:targetPackage="com.mxy"
	android:label="your tests label" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library android:name="android.test.runner" />
        <activity
            android:name="com.mxy.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
这时候我们再重新运行一下,会出现跟使用junit类似的界面。

可能大家感觉这样写起来太费劲,一个是需要自己添加AndroidMainfest.xml里面的代码,另外一个等到程序发布的时候还得删除测试代码(当然如果不删除也没问题,只是apk的包会大一点),这时候我们就可以直接建立一个Android Test Project。我们可以点击新建---->Android Test Project,然后根据向导选择已经存在的工程。建立好工程后,我们就可以直接新建测试用例了。

例子工程下载地址:http://download.csdn.net/detail/mengxiangyue/6997545

转载请注明出处:http://blog.csdn.net/mengxiangyue

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值