Android学习笔记(五)-单元测试与日志输出

创建一个测试项目,在项目中新建一个类CaculateService和一个测试类CaculateServiceTest,在andriod中单元测试类需要继承自AndroidTestCase,AndroidTestCase是继承自junit3的TestCase,所以测试方法要以test开头。

Android学习笔记(五)-单元测试与日志输出_第1张图片Android学习笔记(五)-单元测试与日志输出_第2张图片

CaculateService.java

package com.geniusxiaoyu.service;

public class CaculateService {
	public int divide(int a, int b){
		int result = a / b;
		return result;
	}
}

CaculateServiceTest.java

package com.geniusxiaoyu.junit;

import junit.framework.Assert;

import com.geniusxiaoyu.service.CaculateService;

import android.test.AndroidTestCase;
import android.util.Log;

public class CaculateServiceTest extends AndroidTestCase {

	public void testDevice(){
		CaculateService service = new CaculateService();
		int result = service.divide(100, 10);
		//日志输出:可以使用Log.d()调试 Log.e()错误 Log.w()警告来输出日志
		//日志信息可以在LogCat视图中查看,可以在LogCat中添加过滤器来指定查看某些日志
		Log.i("device", "The Result is " + result);
		Assert.assertEquals(10, result);
	}
}

为了是项目能够进行单元测试,还需要在AndroidManifest.xml中添加下面中红色的部分:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.geniusxiaoyu.junit"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
    <uses-library android:name="android.test.runner" />
        <activity android:name=".TestActivity"
                  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>
    <uses-sdk android:minSdkVersion="8" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
  android:targetPackage="com.geniusxiaoyu.junit" android:label="Tests for My App" />

</manifest> 


如果在运行单元测试时出现Test run failed: Unable to find instrumentation target package的错误,一是要android:targetPackage所配置的包是否存在,是否为单元测试类所在的包,二是要保证android:targetPackage所配置的包要和package配置的包一致。

其中android:targetPackage指的是单元测试类具体所在的包。

Android学习笔记(五)-单元测试与日志输出_第3张图片

Android学习笔记(五)-单元测试与日志输出_第4张图片


在outline视图中右键点击testDevice方法,选择Run As -- Android Junit Test,系统会启动一个模拟器来进行单元测试

你可能感兴趣的:(android,单元测试,JUnit,测试,application,encoding)