Android开发之单元测试(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fengyuzhengfan/article/details/40209995

Android开发之单元测试(一)

 

请尊重他人的劳动成果,转载请注明出处 : Android开发之单元测试(一)

http://blog.csdn.net/fengyuzhengfan/article/details/40209995

        在实际开发中,开发android软件的过程需要不断地进行测试。进行Android单元测试是正规Android开发的必经步骤。单元测试可以嵌入到项目中;也可以作为一个单独的项目针对某个具体项目进行测试。


1.   Android单元测试框架的层次结构


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,如图:

 第一步 创建Android测试用例

选择要测试的项目,然后单击完成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 单元测试。


第三步:进行单元测试


我们可以根据需要选项是运行某一个测试方法还是所有的方法,步骤如图

运行结果:

运行结果1

结果分析:

从上图可以看出,运行结果为失败,原因是sum返回的3,但我们期望它返回的是4


下面我们将期望值改为3

运行结果2


这时候预期和结果相同,运行通过。我们传过去的12进行相加,返回结果是3,所以证明sum方法是正确的。

 

未完待续………….


如果你觉得这篇博文对你有帮助的话,请为这篇博文点个赞吧!也可以关注fengyuzhengfan的博客,收看更多精彩http://blog.csdn.net/fengyuzhengfan/   


展开阅读全文

没有更多推荐了,返回首页