Android入门:单元测试


一、Android的Junit测试


一般的JUnit我们都用过,而针对Android的JUnit也是类似于这种,显示的结果也是绿条和红条。

单元测试整体框架如下:

 

Android入门:单元测试_第1张图片

我们这里只介绍其中一个类:AndroidTestCase;



二、AndroidTestCase


 

程序描述:新建一个Android项目:Activity,添加一个EditText,其他不做任何事;

import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;

public class MainActivity extends Activity {
	private EditText et1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        et1 = (EditText)this.findViewById(R.id.et1);
        if(savedInstanceState!=null){
        	et1.setText(savedInstanceState.getString("name"));
        }
    }
    public int add(int a,int b){
    	return a+b;
    }
}

 

如果我们要进行单元测试通常有两种方法:

(1)直接在项目工程下创建单元测试

(2)创建一个Android Test Project

 

1.直接创建单元测试类


步骤1:在AndroidManifest.xml中添加如下:

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" /> //添加此行代码
    </application>

 

 

<application/> 
<instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="org.xiazdong" /> //要测试的Activity所在包



步骤2:添加单元测试类

import org.xiazdong.MainActivity;

import android.content.Context;
import android.test.AndroidTestCase;
import android.widget.EditText;

public class MainActivityTest extends AndroidTestCase{
	private MainActivity mainActivity;
	private Context context;
	@Override
	protected void setUp() throws Exception {
		super.setUp();
		mainActivity = new MainActivity();  //直接创建Activity实例
		context = this.getContext();//获得上下文
	}
	//测试add方法
	public void testAdd(){
		MainActivity ma = new MainActivity();
		int a = ma.add(2, 3);
		assertEquals(5, a);
	}
}



 

测试即可;

 

2.创建单元测试工程

Android入门:单元测试_第2张图片


这样的好处是不用再配置AndroidManifest.xml,直接创建测试类即可;

 

 

注意:此类的单元测试因为只涉及业务逻辑,因此不能使用findViewById之类的和视图有关的函数;这里也只是测试了一个业务函数:add;





你可能感兴趣的:(android)