>什么是单元测试
在工程中,我们可能会有很多类和类的方法。单元测试就是对这些类或方法(最小软件测试单元)进行检查和验证,通过给定的测试样例进行覆盖测试。
一般情况下,很多程序员都不写单元测试,这是因为:
- 业务逻辑太过于简单,如add(int a, int b){return a+b;},觉得没有写测试的价值;
- 代码繁琐,如果没有Genenator进行模板的自动书写,那么编写单元测试类将耗费大量时间,耽误工程的开发进度;
- 不会写或者懒得写;
一个简单的单元测试结果如下:
从这个结果中,我们可以快速找到系统中出错的类(T3FTest)和出错的方法(Divide)以及实际测试值和期望值、每个测试单元的运行时间。
>什么是JUnit?
JUnit是当下最流行的单元测试平台。JUnit4主要基于JDK5提供的反射机制,因此需要JDK5以上;而JUnit5则结合了JDK8的lambda表达式,因此需要在JDK8以上运行。由于JUnit5只是在JUnit4的基础上加入了一些新特性以及加入、调整了核心包,对于一般用户而言,总的来说差别不大。此处我们将主要利用JUnit4进行样例演示。
1.获取JUnit和简单使用
请从这里获取JUnit的包:http://junit.org/ 。当然,本文样例所用jar包可以到这里打包下载地址:http://download.csdn.net/download/shenpibaipao/10127109
无论是Eclipse或是IDEA,导入相关的包之后,可以通过注解@Test标注一个方法,使其成为一个测试单元。如:
import org.junit.Test;
public class T3F {
public int add(int x,int y){
return x+y;
}
@Test
public void testUnit() throws Exception{
System.out.println("这是一个测试单元");
}
public int divide(int x,int y){
return x/y;
}
}
这样,就可以单独执行这个方法,进行一些测试,而无需给出静态main入口去测试: