请尊重他人的劳动成果,转载请注明出处 : 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/