一.单元测试简介
单元测试是代码正确性验证的最重要的工具,也是系统测试当中最重要的环节。也是唯一需要编写代码才能进行测试的一种测试方法。在标准的开发过程中,单元测试的代码与实际程序的代码具有同等的重要性。每一个单元测试,都是用来定向测试其所对应的一个单元的数据是否正确。
单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
单元测试还具有一下几个好处:
能够协助程序员尽快找到BUG的具体位置
能够让程序员对自己的程序更有自信
能够让程序员在提交项目之前就将代码变的更加健壮
能够协助程序员更好的进行开发
能够向其他程序员展现你的程序该如何调用
能够让项目主管更了解系统的当前状况
二.测试代码
第一步:
打开eclipse.exe,创建一个UnitTest工项目,再创建一个名为com.java.nunit类。测试代码为统计出现的数字及其次数
代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
package com.java.nunit; import java.util.Arrays; public class Nunit { public static void main(String[] args) { int[] a = new int[41]; for(int i=0;i<50;i++) { int count = (int)(Math.random()*41)+10; System.out.print(count+" "); a[count-10]++; } for(int j = 0 ; j< a.length; j++) { if(a[j]==0) continue; else { System.out.println(); System.out.println((j+10)+"出现了"+a[j]+"次"); } } int max=a[0]; for(int j=0;j<a.length;j++) { if(a[j]>max) max = a[j]; } System.out.println(); System.out.println("最大出现次数为"+max+"次"); for(int j=0;j<a.length;j++) { if(a[j]==max) System.out.println("出现次数最多的数字为"+(j+10)); } } }
第二步:
将JUnit4单元测试包引入这个项目。
右键属性,在弹出的属性窗口中,首先在左边选择“Java 构建路径”,然后到右上选择"库"标签,之后在最右边点击“添加库”按钮
选择Junit
选择Junit4
第三步:
生成JUnit测试框架:在Eclipse的包资源管理器中用右键点击该类”UnitTest“弹出菜单,选择 新建 →JUnit测试用例 。
名称是类名+Test
例如NunitTestTest
代码如下
package com.java.nunit;
import java.util.Arrays;
import junit.framework.Test;
public class Nunit extends NunitTestTest {
public void f(){
int[] a = new int[41];
for(int i=0;i<50;i++)
{
int count = (int)(Math.random()*41)+10;
System.out.print(count+" ");
a[count-10]++;
}
for(int j = 0 ; j< a.length; j++)
{
if(a[j]==0)
continue;
else
{
System.out.println();
System.out.println((j+10)+"出现了"+a[j]+"次");
}
}
int max=a[0];
for(int j=0;j<a.length;j++)
{
if(a[j]>max)
max = a[j];
}
System.out.println();
System.out.println("最大出现次数为"+max+"次");
for(int j=0;j<a.length;j++)
{
if(a[j]==max)
System.out.println("出现次数最多的数字为"+(j+10));
}
}
@Override
public void test(){
f();
}
}
如果我在之前改错一个代码
证明代码错误
最后
单元测试结束。