Posts Tagged ‘Android JUnit

android.test.InstrumentationTestRunner解析

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

3 十一 2009

在学习Android、JUnit的过程中,随着学习的深入,发现相关的内容越来越多,将这些类按照继承关系整理如下: Test—TestCase—AndroidTestCase Test—TestCase—InstrumentationTestCase Test—TestSuite—InstrumentationTestSuite TestListener—–BaseTestRunner—AndroidTestRunner Instrumentation—InstrumentationTestRunner 前4条路线是Android在JUnit框架上的扩展,最后一条线是一条重要的线,用一句话来说明就是:这是Android在JUnit框架的基础上锦上添花。在android.app.instrumentation篇幅的学习中,我们对instrumentation有了一定的了解,本篇幅我们将介绍最后一个类InstrumentationTestRunner。在学习这个类前,我们先补充一些知识:在前面学习了这么多,但是在我们的测试例子中却没有看到核心类InstrumentationTestSuite (这个类相当于测试单元中的容器,所有的TestCase都需要添加带TestSuite中加以管理),这是为什么了?因为在Android SDK中对这部分有着一层很深的“包装”,正是有了这个中间层,所以我们没有看到TestSuite这个容器,下面开始介绍这个中间层。

android.app.instrumentation解析

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

30 2009

已经在Android SDK中学习了很多关于JUnit的内容,但是感觉一直有几个问题没有解决(不知道大家是否有同样的感受)JUnit的测试都自动化的,完全是不需要任何操作的,有2个问题我一直都还没有找到答案,这2个问题如下: JUnit可以用来测试Android的基本组成元素:Activity、Service、Provider,那么我们如何控制这些基本元素运行的,这需要Android系统提供一些底层操作的接口才可以做到。 如何模拟界面操作,比如说:单击界面上的按钮、选择菜单等。 对于第二个问题,我在Cview中似乎找到了答案,Cview中提供一些界面操作的函数,例如:performClick(),看来Android SDK还是提供了一些这方面的函数来模拟各种操作。对于第一个问题,本篇对这个问题幅详细说明下。 首先我们先想下,如果要实现对Activity的测试需要些什么?首先需要创建Activity(这个Android SDK中已经提供了),然后可以控制Activity的生命周期,这些是最基本的。在Android SDK中说明过Activity的创建是异步的,也就是说当我们调用startActivty()后,这个函数立刻返回,而不是等待Activity创建好后才返回,这就需要一些同步方面的操作。将前面的概括起来就是2个方面:控制Activity的生命周期与同步方面的问题。Android SDK为我们提供了 instrument,在android.test包中InstrumentationTestCase 类有个函数getInstrumentation()以及通过adb shell am instrument启动测试例子的方法中,都提到了instrument,下面就对instrumentation详细说明。 什么是Instrumentation?

通过前面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,简要分析过其主要框架,如下:

Android下如何调试程序?

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

26 2009

写代码是每个程序员最乐意做的事,然而在开发中也会遇到很多令程序员很头疼的事情。如果说让程序员最头疼的事情是看到无数bug、软件的发布遥遥无期,那么让程序员最最头疼的事情是程序在调试状态下没有问题然而在实际运行中确有问题。调试程序是每个程序员工作中必不可少的部分,而且可以毫不夸张地说调试程序暂用了程序员50%的工作时间。由此可见,调试程序是每个程序员必不可少的技术,调试水平的高低决定了程序员水平的高低。在开发Android程序前,有必要总结下如何调试Android程序。目前就开发过程中,常用调试程序的方法总结如下: 使用Eclipse开发平台调试; 结合Android  SDK调试; 使用JUnit调试;


About mo-Android

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

  • fennek: 爱国者也出了平板-E500,Android 1.5,5 英寸TFT LCD触摸屏(电阻式触摸板) ,800*48 [...]
  • 张凯: 这款三星的平板售价据说是iPad的两倍啊 [...]
  • sayisee: G1是享受不动了,呵呵~ PS:烦请博主到下面链接,帮忙选投上数第六个(西 [...]
  • fennek: 找了半天,在国家和地区的选项里只有香港,没有中国大陆,运营商里也只 [...]
  • 卡卡西: 1.6能向下兼容1.5的,目前没发现1.5的程序在1.6的机器上有什么问题,作者不要 [...]

Calendar

2010年九月
« 八    
 12345
6789101112
13141516171819
20212223242526
27282930