请尊重他人的劳动成果,转载请注明出处 : Android开发之单元测试(一)
http://blog.csdn.net/fengyuzhengfan/article/details/40209995
在实际开发中,开发android软件的过程需要不断地进行测试。进行Android单元测试是正规Android开发的必经步骤。单元测试可以嵌入到项目中;也可以作为一个单独的项目针对某个具体项目进行测试。
1. Android单元测试框架的层次结构
从上图可以看出:
1.android中的测试方法主要有AndroidTestCase和InstrumentationTextCase。那么什么是Instrumentation?
Instrumentation和Activity有点类似,只不过Activity是需要一个界面的,而Instrumentation并不是这样的,我们可以将它理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。
2. 通过android测试类可以实现对android中相关重要的组件进行测试(如Activity,Service,ContentProvider以及Application)。
2. 进行Android单元测试的步骤
这里我编写一个简单的被测类MathUtil这个测试类中只有一个被测方法sum用于计算两个整数相加的和。
package com.jph.simpleapp;
/**
* 被测试类
* @author jph
* Date:2014.10.18
*/
public class MathUtil {
public MathUtil() {
// TODO Auto-generated constructor stub
}
public int sum(int a,int b) {
return a+b;
}
}
提示:被测的方法必须声明为public,否则无法访问。
下面开始开创建测试工程,主要步骤如下:
第一步:创建测试工程
创建Android测试项目,在弹出框中选择Android Test Project,如图:
选择要测试的项目,然后单击完成finish即可。
至此,Android测试工程已经创建完成,下面让我们看一下去它的项目清单文件,如图:
从上图可以看出,Android测试工程比普通Android项目多了<instrumentation/>标签和<uses-library android:name="android.test.runner"/>。
其中targetPackage表示被测试的Android项目的包名。
第二步:创建测试类
这里选择继承AndroidTestCase。
测试代码:
package com.jph.simpleapp.test;
import com.jph.simpleapp.MathUtil;
import android.test.AndroidTestCase;
/**
* 测试类
* @author jph
* Date:2014.10.18
*/
public class MathUtilTest extends AndroidTestCase {
MathUtil mUtil;
/**
* 第一个被执行的方法,可以在这个方法中进行一些初始化操作
* @see android.test.AndroidTestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
mUtil=new MathUtil();
super.setUp();
}
public void testSum() {
int result=mUtil.sum(2, 1);
assertEquals(3, result);
System.out.println("result:"+result);
}
/**
* 最后一个被执行的方法,在这里进行一些收尾工作
* @see android.test.AndroidTestCase#tearDown()
*/
@Override
protected void tearDown() throws Exception {
// TODO Auto-generated method stub
super.tearDown();
}
}
代码分析:
setUp():第一个被执行的方法,可以在这个方法中进行一些初始化操作
tearDown():最后一个被执行的方法,在这里进行一些收尾工作
testSum():是要进行测试sum的方法。
至此,测试类已经编写完成。下面开始进行Android 单元测试。
第三步:进行单元测试
我们可以根据需要选项是运行某一个测试方法还是所有的方法,步骤如图
运行结果:
结果分析:
从上图可以看出,运行结果为失败,原因是sum返回的3,但我们期望它返回的是4。
下面我们将期望值改为3:
这时候预期和结果相同,运行通过。我们传过去的1和2进行相加,返回结果是3,所以证明sum方法是正确的。
未完待续………….
如果你觉得这篇博文对你有帮助的话,请为这篇博文点个赞吧!也可以关注fengyuzhengfan的博客,收看更多精彩http://blog.csdn.net/fengyuzhengfan/