java如何使用JUnit进行单元测试
来源:互联网 发布:博拉网络 中金在线 编辑:程序博客网 时间:2024/06/05 20:43
http://www.cnblogs.com/fench/p/5936008.html
注:所有内容都是在eclipse上实现,关于eclipse的安装和jdk的安装配置,请看:http://www.cnblogs.com/fench/p/5914827.html
单元测试是什么?
百度百科的解释是这样的:单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。
简单的说,单元测试就是对你程序中最小的功能模块进行测试,在c语言里可能是一个函数,java中可能是一个方法或者类。
目的就是为了提高代码的质量。
junit是什么?
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
也就是说junit就是别人写好的单元测试框架,使用此框架你可以大大缩短你的测试时间和准确度(笔者现在还记得大一刚来的的时候,c语言写的小程序,每次都是重启测试,那种编译-输入--停止-编译的苦日子,很痛苦,今天用junit这个单元测试框架好多了)。
注:eclipse已经自带JUnit, JUnit的当前常用版本分为3.X(需要手动添加),4.X(支持注解)
我的这个版本的eclipse自带JUnit3.X的,本文以JUnit3.x为例进行测试。
下面以 “求最大子数组之和”的例子,简单的介绍一下单元测试是什么,junit如何入门。
1 package edu.sau.maximun; 2 public class SubArray { 3 //求两个数中的最大 4 public int max(int x, int y){ 5 if(x>y) 6 return x; 7 else 8 return y; 9 }10 11 //最大子数组之和12 public int maxSubArr(int[] arr){13 int sum = arr[0]; //最大值子数组和14 int sub_sum = arr[0];//中间值15 16 for(int i = 1; i<arr.length; i++){17 sub_sum = max(arr[i],sub_sum+arr[i] );18 sum = max(sub_sum,sum);19 }20 return sum;21 }22 }
以上代码实现了“最大子数组之和”的算法,共有max和maxSubArr两个方法,下面开始测试(重新创建一个新包,取名 test,所有测试都是再这个新包完成)
/**.sau.maximun.SubArray;import junit.framework.TestCase;/** * @author m * @单元测试 * @time 2016/10/7 */public class TestMaximun extends TestCase { //对方法max进行测试 public void testMax(){ int x = 1; //测试数据 int y = 2; int z = -1; SubArray sub = new SubArray(); int result1 = sub.max(x, y); int result2 = sub.max(y,x); int result3 = sub.max(z, x); assertTrue(result1 == y); assertTrue(result2 == y); assertTrue(result3 == 1); } //对方法maxSubArr测试 public void testMaxSubArr(){ int arr1[] ={1,2,3,-1}; //测试用例 int arr2[] = {1,2,-4,8,4,-4,6,-2,1}; int arr3[] ={-4,-2,-1,-3}; int arr4[] = {-4,2,-4,2,-1}; SubArray sub = new SubArray(); assertTrue(sub.maxSubArr(arr1) == 6); assertTrue(sub.maxSubArr(arr2) == 14); assertTrue(sub.maxSubArr(arr3) == -1); assertTrue(sub.maxSubArr(arr4) == 2); }}
整个文件的结构目录如下:
程序单元测试的方法:-右击 测试类->Run as ->JUnit test
运行结果:(Errors:0,Failure:0 说明测试通过,如果出错,Failure是单元测试所期望的错误,说明你的代码结果不满足你的要求,Errors需要你查看系统的配置,检查代码。是不是手动输入快好多?)
说明:
总结:测试类需要继承junit.framework.TestCase类,测试方法命名需要按照public void TestXXXX格式,通过断言来判断结果的正确行。
测试范围一定要满足你的所有需求
以测试testMaxSubArr为例,具体的测试样例及目的如下:
用例编号
用例描述
输入数据预期输出数据通过/不通过评价 1检测能否实现最大数组求和的基本功能(一般情况)1,2,3,-16通过程序实现基本功能2最大子数组处于数组中间(一般情况)1,2,-4,8,4,-4,6,-2,114通过程序实现基本功能3数组元素均为负数,且第一个元素为最小(特殊情况)-4,-2,-1,-3-1通过程序实现特殊情况的求和4数组中存在最大值相同的多个(>=2)子数组(特殊情况)-4,2,-4,2,-12通过程序能对多个相同子数组进行保留现在大家已经会基本的单元测试,当然这只是非常简单的使用junit,后期我会写一些关于junit的更具体的介绍。
代码下载地址: https://coding.net/u/fench/p/java-junit/git
- java如何使用JUnit进行单元测试
- 如何使用Junit进行单元测试
- Java使用junit进行单元测试
- Android中如何使用JUnit进行单元测试
- Android中如何使用JUnit进行单元测试
- Android中如何使用JUnit进行单元测试
- Android中如何使用JUnit进行单元测试
- 如何进行 Junit单元测试
- All About JAVA 使用JUnit 进行单元测试
- 使用 JUnit 进行 Java 代码的单元测试
- 使用 JUnit 进行 Java 代码的单元测试
- 使用 JUnit 进行 Java 代码的单元测试
- Java中使用Junit进行单元测试入门
- java中使用Junit进行单元测试
- 使用JUnit 进行单元测试
- 使用Junit进行单元测试
- 使用Junit进行单元测试
- java junit (单元测试)测试工具如何使用?
- SAP BW as an Enterprise Data Warehouse and How SAP HANA Changes the Game
- tensorflow mac 本机安装的坑
- 网页自动跳转 5种方法
- oracle中进行简单树查询(递归查询) ,PRIOR、CONNECT_BY_ROOT的用法
- Java基础总结之流
- java如何使用JUnit进行单元测试
- Excel导入异常Cannot get a text value from a numeric cell解决
- 用Kcptun给shadowsocks加速 和 使用心得(PC端和安卓端)
- solr在windows下的安装及配置
- Hibernate 多字段distinct查询
- Ubuntu——grub rescue 主引导修复
- docker 新机器环境配置
- android 5.0后矢量图形
- Android收集Log文件并显示在UGUI