使用Junit对Android应用进行单元测试

在本文中,你将会学习到如何在Eclipse中创建Android JUnit单元测试工程以及在不同的条件下创建及运行自动测试用例

  准备工作

  本文假设读者已经有一定的Android基础知识,并且已经安装了Eclipse和Android SDK等开发工具。本文将指导读者如何将Android Junit框架应用到Android应用中去。本文还特别重点展示了如何测试Android中的Activity和如何识别程序中的错误。

  本文的示例代码可以在http://code.google.com/p/simple-calc-unit-testing/中下载

  步骤1 被测试的应用SimpleCalc概况

  在本文中,将以一个写好了的应用SimpleCalc简单计算器为例子进行讲解。这个简单计算器有两个功能,允许用户输入两个数并将它们相加或相乘,最后显示结果,如下图所示:

  步骤2 SimpleCalc的的界面设计

  由于应用比较简单,只占一屏,所以我们在/res/layout/main.xml中设计如下代码所示:


<linearlayout p="" <="" xmlns:android="http://schemas.android.com/apk/res/android" style="line-height: normal !important;">
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<textview p="" <="" android:layout_width="fill_parent" style="line-height: normal !important;">
android:layout_height="wrap_content" android:text="@string/hello"
android:gravity="center_horizontal" android:textSize="48px"
android:padding="12px" />
<edittext p="" <="android:id="@+id/value1" android:layout_height="wrap_content" style="line-height: normal !important;">
android:hint="@string/hint1" android:inputType="numberDecimal"
android:layout_width="fill_parent" android:textSize="48px">
<edittext p="" <="android:id="@+id/value2" android:layout_height="wrap_content" style="line-height: normal !important;">
android:hint="@string/hint2" android:inputType="numberDecimal"
android:layout_width="fill_parent" android:textSize="48px">
<framelayout p="" <="android:id="@+id/FrameLayout01" style="line-height: normal !important;">
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:padding="12px" android:background="#ff0000">
<linearlayout p="" <="" android:id="@+id/LinearLayout02" style="line-height: normal !important;">
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:background="#000000"
android:padding="4px">
<textview p="" <="" android:layout_width="wrap_content" style="line-height: normal !important;">
android:layout_height="wrap_content" android:text="@string/resultLabel"
android:textSize="48px" android:id="@+id/resultLabel">
<textview p="" <="" android:layout_width="wrap_content" style="line-height: normal !important;">
android:layout_height="wrap_content" android:id="@+id/result"
android:textSize="48px" android:textStyle="bold"
android:layout_marginLeft="16px">
<linearlayout p="" <="" android:id="@+id/LinearLayout03" style="line-height: normal !important;">
android:layout_height="wrap_content" android:layout_width="fill_parent">
<button p=" android:id="@+id/addValues" android:layout_height="wrap_content">
android:text="@string/add" android:textSize="32px"
android:layout_width="wrap_content">
<button p="" <=" android:id="@+id/multiplyValues" android:layout_height="wrap_content">
android:text="@string/multiply" android:textSize="32px"
android:layout_width="wrap_content">

  简单解析一下这个界面设计,我们使用了LinearLayout,以使得控件能在垂直方向竖向排列。界面中包括了显示标题“Unit Testing Sample”的textview,两个输入数字的edittext控件,一个FrameLayout控件中包含了一个水平的LinearLayout,在这个LinearLayout包含了一个显示结果的textview以及其提示文字“Result”,注意的是FrameLayout的背景颜色设置为红色,而LinearLayou设置成了黑色背景。   

最新内容请见作者的GitHub页:http://qaseven.github.io/

   

时间: 2024-11-05 16:38:20

使用Junit对Android应用进行单元测试的相关文章

《精通移动App测试实战:技术、工具和案例》一2.3 应用JUnit对Android项目进行单元测试

2.3 应用JUnit对Android项目进行单元测试 2.3.1 JUnit基于Android项目TestCase的应用 如果我们对基于Android系统项目开发有一定了解的话,相信一定能看出来,其核心代码是计算两个整数相加的函数.我们做单元测试当然也挑选其最核心的函数来进行测试.可以按照如下的步骤来创建一个基于Android项目的测试用例(TestCase). 第一步:选中"CalculatorOfTwoNum"项目下的"src"目录中的"com.yu

Android最佳Mock单元测试方案:Junit + Mockito + Powermock

本文旨在从实践出发,引导开发者在Android项目中进行Mock单元测试. 什么是单元测试 单元测试由一组独立的测试构成,每个测试针对软件中的一个单独的程序单元.单元测试并非检查程序单元之间是否能够合作良好,而是检查单个程序单元行为是否正确. 为什么要进行单元测试 在敏捷开发大行其道的今天,由于时间紧,任务重,过分依赖测试工程师以及下列原因,导致单元测试不被重视,在开发流程中处于一个可有可无的尴尬境地. 1. 浪费的时间太多 1. 软件开发人员不应参与单元测试 1. 我是很棒的程序员,不需要进行

在Android中进行单元测试遇到的问题

问题1.Cannot connect to VM  socket closed 在使用JUnit进行测试的时候,遇到这个问题.网上的解释是:使用Eclipse对Java代码进行调试,无论是远程JVM还是本地JVM都会进行Socket通讯.发生这样的错误是由于这些软件会修改winsock,还会监听和占用一些端口,Socket通讯不上造成的. 我通过cmd →ping localhost ,发现localhost指向::1,这是因为我的系统是win7 ,它支持IPv6的原因.而Eclipse需要lo

简单谈谈android studio 的单元测试_Android

面对android studio Run 一次项目要等好几分钟的痛点,不得不研究一下android studio 的单元测试. 其实我的目的很简单,在不对视图进行操作的前提下,测试一些activity 的生命周期,或网络拉取数据的一些处理,比如解析 json 数据啊,做网络请求啊等等,也就是对 Model层的测试.这些不需要操作视图,但在没有单元测试环境下,比如我们网络请求一些数据,Log 打印看看是否请求成功,却又要 利用模拟器或真机Run 一次项目,花费好几分钟,这是不能容忍的. 于是乎,强

Android编程之单元测试实例分析_Android

本文实例讲述了Android编程之单元测试用法.分享给大家供大家参考,具体如下: 在实际开发中,开发android软件的过程需要不断地进行测试.使用Junint测试框架,是正规Android开发的必用技术,在Junint中可以得到组件,可以模拟发送事件和检测程序处理的正确性.单元测试是嵌入到项目中:也可以作为一个单独的项目争对某个具体项目进行测试. 第一步:首先在AndroidManifest.xml中加入下面红色代码: <manifest xmlns:android="http://sc

《精通移动App测试实战:技术、工具和案例》一2.2 JUnit在Android开发中的应用

2.2 JUnit在Android开发中的应用 2.2.1 单元测试的重要性 前面我们提到了单元测试,那么什么叫单元测试呢?单元测试(Unit Testing),是指对软件中的最小可测试单元进行的检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如在Java中单元指一个类,在C语言里单元指一个函数等.单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试.通常,我们在编写大型应用系统的时候,都要写成千上万个方法

Android编程之单元测试实例分析

本文实例讲述了Android编程之单元测试用法.分享给大家供大家参考,具体如下: 在实际开发中,开发android软件的过程需要不断地进行测试.使用Junint测试框架,是正规Android开发的必用技术,在Junint中可以得到组件,可以模拟发送事件和检测程序处理的正确性.单元测试是嵌入到项目中:也可以作为一个单独的项目争对某个具体项目进行测试. 第一步:首先在AndroidManifest.xml中加入下面红色代码: <manifest xmlns:android="http://sc

简单谈谈android studio 的单元测试

面对android studio Run 一次项目要等好几分钟的痛点,不得不研究一下android studio 的单元测试. 其实我的目的很简单,在不对视图进行操作的前提下,测试一些activity 的生命周期,或网络拉取数据的一些处理,比如解析 json 数据啊,做网络请求啊等等,也就是对 Model层的测试.这些不需要操作视图,但在没有单元测试环境下,比如我们网络请求一些数据,Log 打印看看是否请求成功,却又要 利用模拟器或真机Run 一次项目,花费好几分钟,这是不能容忍的. 于是乎,强

Junit实现Android单元测试

编写android业务代码的时候,我们需要测试其正确性,那就用进行各种测试,很多时候,我们都是用的 System.out.println("XXXXX") 来进行验证,但有时候,我们肉眼也不一定就能判断的准确,所以可以考虑用下junit. JUnit是个自动化单元测试工具,能够根据你需要测试的类及其接口自动生成该类的单元测试案例,你只要根据你的需要,就输入必要的测试数据就行了,系统运行后自动判断运行是否成功. 下面我来介绍下如何使用JUnit来测试android项目. 由于androi