java怎么测试_java中如何使⽤Junit测试
java中如何使⽤Junit测试
⼀、总结
⼀句话总结:a、单元测试的测试代码在test⽂件夹下,和源码不在同⼀个⽂件夹下
b、测试的类⽅法都以test开头,后⾯接要测试的类或者⽅法的名字
1、JUnit中什么时候使⽤assertTrue,assertFalse语句?
true 通过
false 通过
assertTrue(boolean condition);
condition:如果condition结果为true,则通过测试.
assertFalse(boolean condition);
condition:如果condition结果为false,则通过测试.
2、单元测试是什么?
最⼩ 功能模块 进⾏测试
百度百科的解释是这样的:单元测试(模块测试)是开发者编写的⼀⼩段代码,⽤于检验被测代码的⼀个很⼩的、很明确的功能是否正确。通常⽽⾔,⼀个单元测试是⽤于判断某个特定条件(或者场景)下某个特定函数的⾏为。例如,你可能把⼀个很⼤的值放⼊⼀个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。
简单的说,单元测试就是对你程序中最⼩的功能模块进⾏测试,在c语⾔⾥可能是⼀个函数,java中可能是⼀个⽅法或者类。
⽬的就是为了提⾼代码的质量。
⼆、java使⽤Junit测试实例
参考:
java如何使⽤JUnit进⾏单元测试 - Fench - 博客园
单元测试是什么?
百度百科的解释是这样的:单元测试(模块测试)是开发者编写的⼀⼩段代码,⽤于检验被测代码的⼀个很⼩的、很明确的功能是否正确。通常⽽⾔,⼀个单元测试是⽤于判断某个特定条件(或者场景)下某个特定函数的⾏为。例如,你可能把⼀个很⼤的值放⼊⼀个有序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 packageedu.sau.maximun;2
3 public classSubArray {
4 //求两个数中的最⼤
5 public int max(int x, inty){
6 if(x>y)
7 returnx;
8 else
9 returny;10 }11
12 //最⼤⼦数组之和
13 public int maxSubArr(int[] arr){14 int sum = arr[0]; //最⼤值⼦数组和
15 int sub_sum = arr[0];//中间值
16
17 for(int i = 1; i
以上代码实现了“最⼤⼦数组之和”的算法,共有max和maxSubArr两个⽅法,下⾯开始测试(重新创建⼀个新包,取名 test,所有测试都是再这个新包完成)
1 packageedu.st;2
3 importedu.sau.maximun.SubArray;
4 importjunit.framework.TestCase;5
6 public class TestMaximun extendsTestCase {7
8 //对⽅法max进⾏测试
9 public voidtestMax(){10 int x = 1; //测试数据
11 int y = 2;12 int z = -1;13 SubArray sub = newSubArray();14 int result1 =sub.max(x, y);15 int result2 =sub.max(y,x);16 int result3 =sub.max(z, x);17 assertTrue(result1 ==y);18 assertTrue(result2 ==y);19 assertTrue(result3 == 1);20 }21
22 //对⽅法maxSubArr测试
23 public voidtestMaxSubArr(){24
25 int arr1[] ={1,2,3,-1}; //测试⽤例
26 int arr2[] = {1,2,-4,8,4,-4,6,-2,1};27 int arr3[] ={-4,-2,-1,-3};28 int arr4[] = {-4,2,-4,2,-1};29 SubArray sub =
newSubArray();30
31
32 assertTrue(sub.maxSubArr(arr1) == 6);33 assertTrue(sub.maxSubArr(arr2) == 14);34 assertTrue(sub.maxSubArr(arr3) == -1);35 assertTrue(sub.maxSubArr(arr4) == 2);36 }37 }
整个⽂件的结构⽬录如下:
程序单元测试的⽅法:-右击 测试类->Run as ->JUnit test
运⾏结果:(Errors:0,Failure:0 说明测试通过,如果出错,Failure是单元测试所期望的错误,说明你的代码结果不满⾜你的要求,Errors需要你查看系统的配置,检查代码。是不是⼿动输⼊快好多?)
说明:
总结:测试类需要继承junit.framework.TestCase类,测试⽅法命名需要按照public void TestXXXX格式,通过断⾔来判断结果的正确⾏。
测试范围⼀定要满⾜你的所有需求
以测试testMaxSubArr为例,具体的测试样例及⽬的如下:
⽤例编号
⽤例描述
输⼊数据
预期输出数据
通过/不通过
评价
1
检测能否实现最⼤数组求和的基本功能(⼀般情况)
1,2,3,-1
6
通过
程序实现基本功能
java技术介绍百度百科2
最⼤⼦数组处于数组中间(⼀般情况)
1,2,-4,8,4,-4,6,-2,1
14
通过
程序实现基本功能
3
数组元素均为负数,且第⼀个元素为最⼩(特殊情况)
-4,-2,-1,-3
-1
通过
程序实现特殊情况的求和
4
数组中存在最⼤值相同的多个(>=2)⼦数组(特殊情况)
-4,2,-4,2,-1
2
通过
程序能对多个相同⼦数组进⾏保留
现在⼤家已经会基本的单元测试,当然这只是⾮常简单的使⽤junit,后期我会写⼀些关于junit的更具体的介绍。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论