Android--JUnit单元测试

简介:

前言

  本篇博客说明一下在Android开发中,如何使用JUnit进行单元测试。首先来了解一下什么是JUnit,JUnit测试是白盒测试,即主要是程序员自己对开发的方法进行功能性测试。JUnit是一套框架,Android中也沿用了这一套框架。

 

JUnit

  在Android中使用JUnit测试大致分如下几个步骤:

  1. 在AndroidManifest.xml中增加对JUnit的支持,并制定测试项目包。
  2. 在AndroidManifest.xml中<application.../>节点中增加一个<uses-library...>节点,name属性为android.test.runner。
  3. 在编写待测试方法后,新建一个类,继承AndroidTestCase,在其中编写测试用例代码。
  4. 鼠标左键在测试用例方法上,Run As→Android JUnit Test。

  下面就上面几个步骤,详细讲解一下,新建一个Android项目,在AndroidManifest.xml中,添加一个Instrumentation:

  指定Instrumentation的name与TargetPackage:

  在<application.../>节点中增加<uses-library android:name="android.test.runner" />

  完成后AndroidManifest.xml代码如下:

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.junittestdemo"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6 
 7     <uses-sdk
 8         android:minSdkVersion="8"
 9         android:targetSdkVersion="17" />
10 
11     <instrumentation
12         android:name="android.test.InstrumentationTestRunner"
13         android:targetPackage="com.example.junittestdemo" >
14     </instrumentation>
15 
16     <application
17         android:allowBackup="true"
18         android:icon="@drawable/ic_launcher"
19         android:label="@string/app_name"
20         android:theme="@style/AppTheme" >
21         <uses-library android:name="android.test.runner" />
22 
23         <activity
24             android:name="com.example.junittestdemo.MainActivity"
25             android:label="@string/app_name" >
26             <intent-filter>
27                 <action android:name="android.intent.action.MAIN" />
28 
29                 <category android:name="android.intent.category.LAUNCHER" />
30             </intent-filter>
31         </activity>
32     </application>
33 
34 </manifest>
复制代码

  编写一个简单的进度百分比计算方法:

复制代码
 1 package com.example.service;
 2 
 3 public class ProgressService {
 4     public ProgressService() {
 5 
 6     }
 7     public Integer getCurrentProgerss(double current, double max) {
 8         Integer i=(int)((current / max) * 100) ;
 9         return i;
10     }
11 }
复制代码

 编写一个测试类,这个类需要继承AndroidTestCase,针对百分比方法进行测试:

复制代码
 1 package com.example.junit;
 2 
 3 import android.test.AndroidTestCase;
 4 import android.util.Log;
 5 
 6 
 7 import com.example.service.ProgressService;
 8 
 9 public class ProgressServiceJUnit extends AndroidTestCase {
10     private final String TAG="main";
11     
12     public ProgressServiceJUnit() {
13         // TODO Auto-generated constructor stub
14     }
15     
16     public void getCurrentProgerssTest(){
17         ProgressService progressService=new ProgressService();
18         Integer pro=progressService.getCurrentProgerss(20, 70);
19         Log.i(TAG, pro.toString());
20     }
21 }
复制代码

  左键getCurrentProgerssTest()方法,选中Android JUnit Test,如果需要调试,可以选择Debug As下的Android JUnit Test:

  当执行成功后,会显示绿色,如果是其他颜色,则为出错:

  可以在LogCat日志中看到测试结果:



本文转自承香墨影博客园博客,原文链接:http://www.cnblogs.com/plokmju/p/Android_JUnit.html,如需转载请自行联系原作者


相关文章
|
4月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
2月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
32 5
|
3月前
|
Java 测试技术 Android开发
Android性能测试——发现和定位内存泄露和卡顿
本文详细介绍了Android应用性能测试中的内存泄漏与卡顿问题及其解决方案。首先,文章描述了使用MAT工具定位内存泄漏的具体步骤,并通过实例展示了如何分析Histogram图表和Dominator Tree。接着,针对卡顿问题,文章探讨了其产生原因,并提供了多种测试方法,包括GPU呈现模式分析、FPS Meter软件测试、绘制圆点计数法及Android Studio自带的GPU监控功能。最后,文章给出了排查卡顿问题的四个方向,帮助开发者优化应用性能。
207 4
Android性能测试——发现和定位内存泄露和卡顿
|
3月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
78 6
|
3月前
|
测试技术 Shell Android开发
Android 性能测试初探 (六)
本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试,但本系列文章都不去一一探讨了。
59 6
|
3月前
|
JavaScript 测试技术 Android开发
Android 性能测试初探 (四)
本文介绍了GPU在移动端性能测试中的重要性,并详细解释了过度绘制、帧率和帧方差的概念。针对GPU测试,文章列举了三项主要测试内容:界面过度绘制、屏幕滑动帧速率和平滑度。其中,过度绘制测试需遵循特定标准,而帧速率和平滑度测试则可通过软件或硬件方法实现。在软件测试中,使用Systrace插件和高速相机是两种常用手段。对于不同机型,帧率及帧方差的测试标准也需相应调整。
61 5
|
3月前
|
测试技术 Shell Android开发
Android 性能测试初探 (三)
本文承接《Android性能测试初探(二)》,深入探讨CPU与内存测试。介绍了移动端内存测试的重要性及其测试目标,并详细列举了不同状态下应用内存消耗情况的测试项目。此外,还提供了多种内存测试方法,包括使用`procrank`等工具的具体操作步骤。最后,文章也简要提及了CPU测试的相关内容,帮助读者更好地理解Android性能测试的关键要素。
59 5
|
3月前
|
测试技术 Shell 定位技术
Android 性能测试初探 (五)
聊聊大家不常关注的测试项- 功耗
60 3
|
3月前
|
算法 测试技术 Android开发
Android 性能测试初探 (二)
上回大体介绍了下在 android 端的性能测试项,现在我们就细节测试项做一些阐述(包括如何自己 DIY 测试)
51 4
|
3月前
|
测试技术 API Android开发
Android 性能测试初探 (一)
Android 性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试;一类为应用的性能测试。
55 3