Android开发之单元测试(一)

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

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

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


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


Android开发之单元测试(一)_第1张图片

从上图可以看出:

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开发之单元测试(一)_第2张图片

选择要测试的项目,然后单击完成finish即可。

至此,Android测试工程已经创建完成,下面让我们看一下去它的项目清单文件,如图:

从上图可以看出,Android测试工程比普通Android项目多了<instrumentation/>标签和<uses-library android:name="android.test.runner"/>

其中targetPackage表示被测试的Android项目的包名。

第二步:创建测试类


这里选择继承AndroidTestCase。

Android开发之单元测试(一)_第3张图片

测试代码:

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() */@Overrideprotected void setUp() throws Exception {// TODO Auto-generated method stubmUtil=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() */@Overrideprotected void tearDown() throws Exception {// TODO Auto-generated method stubsuper.tearDown();}}

代码分析:

setUp():第一个被执行的方法,可以在这个方法中进行一些初始化操作

tearDown():最后一个被执行的方法,在这里进行一些收尾工作

testSum():是要进行测试sum的方法。

至此,测试类已经编写完成。下面开始进行Android 单元测试。


第三步:进行单元测试


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

运行结果:

Android开发之单元测试(一)_第4张图片

结果分析:

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


下面我们将期望值改为3

Android开发之单元测试(一)_第5张图片


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

未完待续………….


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


更多相关文章

  1. Android TV开发 开源项目收集
  2. 如何正确实现Android启动屏画面的方法(避免白屏)
  3. GitHub 优秀的 Android 开源项目和框架
  4. 推荐——Monkey《大话 app 测试——Android、iOS 应用测试指南》
  5. 开源项目之Android DataFramework(数据库框架)
  6. Android中Failed to 。。。。。。timeout错误的解决方法
  7. Android studio64新建APP项目时,报错 junit:junit:4.12

随机推荐

  1. 0805 PHP编程作业 条件循环与回调函数
  2. 【前端 · 面试 】HTTP 总结(六)—— HTTP
  3. 计算器作业
  4. 0805 一.将数组的偶数去出, 二.尝试实现
  5. 数组循环取模及代码实现计算器
  6. 入门php变量和常量
  7. php 求数组中的偶数成员
  8. 0805 PHP编程作业
  9. 请实例演绎php遍历数组与js遍历数组的区
  10. 数组、计算器