Posts Tagged ‘Android、JUnit深入浅出

在学习Android、JUnit的过程中,随着学习的深入,将Android、JUnit的类按照继承关系整理如下: Test—TestCase—AndroidTestCase Test—TestCase—InstrumentationTestCase Test—TestSuite—InstrumentationTestSuite TestListener——BaseTestRunner—AndroidTestRunner Instrumentation—InstrumentationTestRunner 上面的5条路线,也是我们不断学习的过程,对于前4条路线感觉自己解析的都比较清楚,最后一条路线似乎说的不是很清楚,后来我又查看了不少这方面的资料,对Instrumentation再次说明下。

An instrumention test runner is not specified

By: 海市蜃楼 | In: Android开发

6 十一 2009

单击“Android JUnit Test”运行后,出现“An instrumention test runner is not specified ”错误提示,如下: 同时,在程序的console面板中会输出如下信息: ERROR: Application does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner。 出现错误的原因可能是:AndroidManifest.xml配置错误。那么在AndroidManifest.xml到底需要配置哪些内容呢,下面一一为大家说明: 在<application>增加引用android.test.runner的声明,如下图所示: 然后在<manifest>中增加instrumentation的信息说明,如下图所示: 最后还需要增加uses-permission声明,如下图所示:

前面我们学习了很多JUnit的程序,在Android ADT插件中已经为我们提供了很多这方面的功能,方便我们进行单元测试。但是如何进行单元测试,例如在ApiDemos\test提供的测试例子程序如何运行,对于我们这些初学者来说有些茫然,我也是在网上查找了不少这方面的的资料学习,才知道如何运行测试单元,因此在这里总结说明与大家分享。总结起来,大概有4种不同的方法: 使用ADT 运行测试单元 在Eclipes中选择工程,单击右键,在Run as/Debug as子菜单选项中选择Android JUnit Test,如下: 单击运行后,应用程序将启动,在Eclipes中会出现个新的面板JUnit,如下:

前面我们学习了android.test包中的大部分类,是该通过学习具体的例子将前面的知识融会贯通,让我们的理解更加深刻,例子程序代码下载地址,下载后添加Eclipes的工程中,边看这篇文章边阅读例子程序的代码。 首先分析整个工程的结构图,如下: AndroidTestCase,Testsuite在前面的篇幅中已经学习过了,ContestTest、MathTest、SomeTest、ExampleSuite在前面的例子中已经为大家介绍了,这里我们主要说明整个程序是如何运行的?

随着学习的深入,发现包在前面的篇幅中,我们忽略了android.test包中一个重要的类AndroidTestRunner,这个类是android.test包的核心类,下面为大家详细说明,并补充说明一些相关的内容。 junit.framework包中的TestListener接口 这个接口的函数,列举如下: 与这个接口,相关的类就只用TestResult,相关接口如下:

前面我们学习了junit.framework包,本篇幅我们开始学习android.test包,了解Android SDK是如何扩展junit.framework包。 首先整理android.test包的结构,如下图所示:

通过前面2篇文章的学习,我们对JUnit有了初步的认识,下面我们将深入的解析JUnit数据包。整个JUnit的数据包应该是很强大的,但是一般来说,不一定每个工程都需要这些数据包,而是在JUnit部分数据包的基础上扩展出自己的数据包,Android SDK中也不例外。至于JUnit完整的包,这里我们就不详细分析了,我们这里只解析Android SDK中包含的那些JUnit数据包,以及Android SDK在JUnit的基础上扩展的一些数据包,如下: SDK 功能说明 junit.framework JUnit测试框架 junit.runner 实用工具类支持JUnit测试框架 android.test Android 对JUnit测试框架的扩展包 android.test.mock Android的一些辅助类 android.test.suitebuilder 实用工具类,支持类的测试运行 在这些包中最为重要的是:junit.framework、android.test,其中前者是JUnit的核心包,后者是Andoid SDK在Junit.framework的基础上扩展出来的包,我们将重点解析这2个包。

在前一篇文章JUnit初步解析中,我们简要了解了JUnit的主要功能: 管理测试用例; 定义测试代码; 定义测试环境; 检测测试结果; 结合主要功能,举个简单的例子分析如下:

Android SDK 1.5已经将JUnit包含进来了,但是一直没有去深入了解,以前在使用一些C++的开源库中学习过与CPPUnit,简要分析过其主要框架,如下:


About mo-Android

这里有一群热爱开发的人,我们的文章以原创、翻译为主,包含了我们对Android的认识,对Android的研究,以及一些开发心得和感想,如果 你喜欢我们的站点,喜欢我们的文章,欢迎拍砖,欢迎交流。希望新版的mo-Android能够为你带来更好的体验。

Calendar

2013年五月
« 三    
 12345
6789101112
13141516171819
20212223242526
2728293031