步骤4 创建Android 单元测试工程 可以有两种方法去增加单元测试工程:一种是在创建新的Android工程时,在创建向导时同时创建单元测试工程,另外是针对已有的项目工程添加一个单元测试工程。本文由于已经有了一个项目工程,所以用如下步骤增加单元测试工程:
▲
在Eclipse中,选择存在的工程SimpleCalc,鼠标右键后在弹出的菜单中选择Android Tools-àNew Test Project,如下图所示:
步骤5 设置测试工程
接下来需要对单元测试的工程进行设置,我们采用如下的设置方法:
l 测试工程名称:我们采用SimpleCalcTest
l 工程的位置:这个可以随便设置
l 选择被测试的工程:这里我们选择已经存在的SimpleCalc
l 构建的目标版本:这里我们选择Android 2.1
l 测试用例的包名:设置为com.mamlambo.article.simplecalc.test,
l 设置界面如下图所示。
▲
步骤6 SimpleCalcTest单元测试项目的结构
我们审视下SimpleCalcTest的项目结构如下图所示,可以看到这跟普通的Android工程没什么两样:
▲
步骤7 创建单元测试用例
下面创建第一个单元测试用例,鼠标右键点击simplecalc.test的包,在弹出的菜单中选择NewàJUnit Test Case,如下图所示:
▲
步骤8 设置单元测试用例
接下来对单元测试进行如下设置
l 设置选择使用Junit 3
l 源代码目录:这里要设置为SimpleCalcTest工程的代码目录
l Package:这里设置为com.mamlambo.article.simplecalc.test,
l 测试用例名称:设置为MathValidation
l 测试的父类:这里选择“android.test.ActivityInstrumentationTestCase2.",这个是用来测试activity的Android的测试用例
l 将多选框中的setup,constructor两个都勾选上
如下图所示
▲
步骤9 查看MatthValidation测试用例
在上图中,点”Finish”按钮后,MathVlidatiton.java测试用例就创建了。在单元测试中包括如下几个部分:construction, setUp(), 针对方法的测试用例, tearDown(), 和destruction。在setup()方法中,主要是实现一些在测试工作前的资源及环境设置等的初始化设置;而针对方法的测试用例中,需要用户自己编写,一般是以“test+方法名”;而tearDown()在每个测试方法之后运行,用来撤消其初始化的测试环境。
代码如下:
#div_code img{border:0px;}package com.mamlambo.article.simplecalc.test;
import android.test.ActivityInstrumentationTestCase2;
publicclass MathValidation extends
ActivityInstrumentationTestCase2<MainActivity>{
publicMathValidation(Stringname) {
super(name);
}
protected void setUp() throws Exception {
super.setUp();
}
}
步骤10 修改MathValidation的构造函数
在测试用例的构造函数中,写入如下代码,以将我们正在使用的测试父类与测试环境设置进行绑定。
public MathValidation() {
super("com.mamlambo.article.simplecalc", MainActivity.class);
}
步骤11 编写setUp方法
现在可以收集数据去验证SimpleCalc的计算方法了。在setUp方法中,首先应该通过getActivity()方法获得当前的Activity,如下所示:
MainActivity mainActivity = getActivity();
接着,需要获得名为R.id.result的textview控件的实例,这个控件实际上保存计算器应用的运算结果的,代码如下所示:
#div_code img{border:0px;}package com.mamlambo.article.simplecalc.test;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;
import com.mamlambo.article.simplecalc.MainActivity;
import com.mamlambo.article.simplecalc.R;
publicclass MathValidation extends ActivityInstrumentationTestCase2<MainActivity>{
privateTextView result;
publicMathValidation() {
super ("com.mamlambo.article.simplecalc", MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
MainActivity mainActivity=getActivity();
result=(TextView) mainActivity.findViewById(R.id.result);
}
}
来自:http://tech.it168.com/a2010/1027/1118/000001118903_all.shtml