Android JUnit测试说明和实例演示
2013-05-16 10:03
731 查看
什么是 JUnit ?
JUnit是采用测试驱动开发的方式,也就是说在开发前先写好测试代码,主要用来说明被测试的代码会被如何使用,错误处理等;然后开始写代码,并在测试代码中逐步测试这些代码,直到最后在测试代码中完全通过。
现简要说JUnit的4大功能
管理测试用例。修改了哪些代码,这些代码的修改会对哪些部分有影响,通过JUnit将这次的修改做个完整测试。这也就JUnit中所谓的TestSuite。定义测试代码。这也就是JUnit中所谓的TestCase,根据源代码的测试需要定义每个TestCase,并将TestCase添加到相应的TestSuite方便管理。
定义测试环境。在TestCase测试前会先调用“环境”配置,在测试中使用,当然也可以在测试用例中直接定义测试环境。
检测测试结果。对于每种正常、异常情况下的测试,运行结果是什么、结果是否是我们预期的等都需要有个明确的定义,JUnit在这方面提供了强大的功能。
以上部分与我们平常使用IDE调试的过程是完全一样的,只不过是增加了测试用例管理、测试结果检测等功能,提高了单元的效率,保证了单元测试的完整性,明确了单元测试的目标。
一个 JUnit 测试包含以下元素:
开发代码部分 | 测试代码部分 | 测试工具部分 |
待测试类 A | 通过扩展 TestCase 或者构造 TestSuit 方法 编写测试类 B | 一个测试运行器(TestRunner)R,可以选择图形界面或文本界面 |
将 B 通过命令行方式或图形界面选择方式传递给 R,R 自动运行测试,并显示结果。
首先看下junit测试类库和android中单元测试类库:
SDK | 功能说明 |
junit.framework | JUnit测试框架 |
junit.runner | 实用工具类支持JUnit测试框架 |
android.test | Android 对JUnit测试框架的扩展包 |
android.test.mock | Android的一些辅助类 |
android.test.suitebuilder | 实用工具类,支持类的测试运行 |
TestSuit:
TestSuite是测试用例的集合;
TestCase:定义运行多个测试用例;
TestResult:收集一个测试案例的结果,测试结果分为失败和错误,如果未能预计的断言就是失败,错误就像一个ArrayIndexOutOfBoundsException异常而导致的无法预料的问题;
TestFailure:测试失败时捕获的异常;
Assert:断言的方法集,当断言失败时显示信息;
下面给出一个实例:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.junit" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name="com.android.junittest.MyJUnitActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- Android JUnit配置 --> <uses-library android:name="android.test.runner" /> </application> <!-- 注:targetPackage与上面mainfest的package相同即可 --> <instrumentation android:targetPackage="com.android.junit" android:name="android.test.InstrumentationTestRunner" android:label="Android JUnit测试" /> </manifest>
Activity类,只是给出一个界面,没有实际的用途
package com.android.junit; import com.android.junit.R; import android.app.Activity; import android.os.Bundle; public class MyJUnitActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
需要测试的类
package com.android.junit; public class Apps { public void methodA() { System.out.println("---Hello!"); } public void methodB(String name) { System.out.println("---Hello " + name + "!"); } }
测试类
package com.android.junittest; import com.android.junit.Apps; import android.test.AndroidTestCase; public class AppsTester extends AndroidTestCase { Apps a = null; private int i1; private int i2; protected void setUp() throws Exception { a = new Apps(); i1 = 1; i2 = 2; } public void testMethodA() { a.methodA(); } public void testMethodB() { a.methodB("Android"); } //这是一个错误的测试 public void testAdd() { assertTrue("testAddFailed", (i1 + i2) == 4); } public void testDec() { assertTrue("testDecFailed", (i2 - i1) == 1); } }
相关文章推荐
- Android JUnit测试说明和实例演示
- Eclipse Android Junit Test 测试实例
- Android利用方向传感器获得手机的相对角度实例说明
- Junit 实例精讲基础教程(五) JUnit套件测试,一次性运行多个测试用例(测试类的测试方法)
- Android编程之页面切换测试实例
- 在Android项目中的测试类点击"run as JUnit test"出错
- Android 中 JUnit 测试的配置
- 转贴一个关于Junit测试Android开发的
- Android 项目 Junit 测试
- Android下junit测试框架配置
- Junit 4.x 单元测试,参数化测试,套件测试 实例
- Android之RAS加密算法测试实例
- 软件测试技术JUnit和单元测试入门简介--JUnit实例
- Android-Universal-Image-Loader开源项目的简要说明及使用实例
- Android之SimpleAdapter简单实例和SimpleAdapter参数说明
- appium+Python+Android 自动化测试实例
- 【黑马Android】(02)短信发送器/布局演示/android下单位/android下Junit/保存数据/android下权限/xml解析和序列化
- 15个JUnit测试方法教会你常用的RxAndroid套路
- 实例简介HttpUnit结合JUnit自动测试Web应用
- 基于JUnit使用PowerMock的Mockito扩展在Maven测试项目中的配置说明