Android开发之单元测试(一)

Android开发之单元测试(一)

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

时间: 2024-10-13 20:43:06

Android开发之单元测试(一)的相关文章

Android开发中单元测试的两种方式

Android开发中单元测试的两种方式 一位优秀的程序员也同样不能保证自己的程序没有bug,因此编写合适的测试程序是完全有必要的,这样也会降低程序在后期出现各种奇奇怪怪bug的可能,降低维护成本,未雨绸缪将bug扼杀在摇篮之中. 看到网上有很多依旧用写java单元测试的方式在写android程序的单元测试程序--junit,当然我一直都反感将不合时宜的东西强搬到新的技术应用以获取一席之地的这种做法,不断的应用新的方法提高效率,完善程序才是真理!废话不多说,直接说到今天的重点:Android开发中

[Android学习十一]Android开发单元测试

网上关于Android单元测试的文字帖子不胜枚举,看完之后能解决问题是好事,不能解决问题那就是浪费时间和经历.大多数文章来自于这篇文章:http://rexstjohn.com/unit-testing-with-android-studio/       自从投入到Android Studio IDE之后基本上就赖着不走了.这里仅讨论AS(Android Studio)中Android单元测试.           开发一个Android应用单元测试这种程序员的自我修养和基本道德测试是必不可少

android开发 单元测试

1.测试用例类必须得继承AndroidTestCast类2.测试用例类使用public 修饰3.测试用例的测试方法使用public修饰4.测试用例的测试方法的返回值应该是void5.测试用例中测试方法不应该有任何参数6.测试用例中测试方法必须抛出异常 ,在你的方法加上:throws throwable7.测试用例中测试方法名必须以test开头:test+你的方法名, android开发 单元测试,布布扣,bubuko.com

Android开发技术周报 Issue#64

教程 AndroidFlux-异步请求和网络 在移动开发中,异步网络操作必不可少,本篇着重介绍在Flux模式中如何处理异步操作的问题,并深入一些细节,比如如何在异步操作时显示异步状态.另外,网络操作仅仅是异步操作的一种,最后扩展ActionCreator的语义来处理更多的业务逻辑. Tricking Android MemoryFile MemoryFile是android在最开始就引入的一套框架,其内部实际上是封装了android特有的内存共享机制Ashmem匿名共享内存,简单来说,Ashme

Android 开发最佳实践

从Futurice公司Android开发者中学到的经验. 遵循以下准则,避免重复发明轮子.若您对开发iOS或Windows Phone 有兴趣, 请看iOS Good Practices 和 Windows client Good Practices 这两篇文章.摘要 ??? 使用 Gradle 和它推荐的工程结构??? 把密码和敏感数据放在gradle.properties??? 不要自己写 HTTP 客户端,使用Volley或OkHttp库??? 使用Jackson库解析JSON数据???

Android开发总结

出来工作半年多了,没啥好交代的,就说说自己半年来的Android开发经历. 1.IDE      这半年来,从Eclipse到Android Studio,经历了两个IDE,在这里做一下简单的评价. 如果真要说,Android Studio是基本上大胜Eclipse的,至少Android Studio不会像Eclipse那样卡,公司配的电脑是渣了点,64位,wein7,只有4G内存,跑Eclipse跑久了简直就是噩梦. Android Studio的智能提示比Eclipse强多了,快捷键也很强大

android开发及测试工具

1.Buckfacebook开源的Android编译工具,效率是ant的两倍.主要优点在于:(1) 加快编译速度,通过并行利用多核cpu和跟踪不变资源减少增量编译时间实现(2) 可以在编译系统中生成编译规则而无须另外的系统生成编译规则文件(3) 编译同时可生成单元测试结果(4) 既可用于IDE编译也可用于持续集成编译(5) facebook持续优化中项目地址:https://github.com/facebook/buck 2.Android Maven PluginAndroid Maven插

Android 开发命令行完全攻略

作为命令行的爱好者,我想写这个主题已经有好一段时间了.除了显得很酷之外,命令行的使用能够提高我们的开发效率,因为相比通过鼠标点击一系列的菜单选项,使用键盘输入几个字符并点击 TAB 健显然会快很多. 本文的目的是跟大家分享在我的 Android 开发实践中对命令行的运用. iTerm2 由于我们将会在命令行中进行后续的工作,因此如果能够安装一个比系统默认命令行更好的工具那显然是不错的,那么请下载 iTerm21 吧! iTerm2 将命令行带入了现代化时代,提供了很多你一直想要的特性.其中包含了

Android开发中的MVP架构(转)

写在前面,本博客来源于公众号文章:http://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=402435540&idx=1&sn=1cd10bd9efaac7083575367a8b4af52f&scene=1&srcid=0910ARzPpBvVYPI1NDBZnixa#wechat_redirect 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目