java中的单元测试Junit4
首先就是主要简单的讲一下Junit的使用,属于傻瓜式速成教程,gogogogogogogo!
一:什么是单元测试:
我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情。所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,并且仔细观察运行结果,看看是否有错。这样的话太过于麻烦了,本文简要介绍一下在Eclipse中使用JUnit4进行单元测试的方法。用更加通俗的话来描述单元测试就是:写了个类,要给别人用,会不会有bug?怎么办?测试一下。用main方法测试好不好?这种方法我们经常用,就是写一个方法实现一些功能,把方法的调用方式放在main函数中。这样的测试方式一个是使得main函数太过于混乱,再者测试过程需要人的仔细观察来辨别每个函数的功能实现,哪一个函数出错了,哪一个函数没有输出之类的问题层出不穷,单元测试就是来解决这些问题的。下面我会就单元测试的每一步给出详细的图解和描述。
二:进行单元测试:
首先我先创建一个就是一个简单的计算机类,里面就写一个加除的方法;
1 package junit; 2 3 public class Reckon {//一个计算类 4 5 //简单的实现两个计算方法 6 public int add(int num1,int num2){ 7 return num1+num2; 8 } 9 10 public int divide(int num1,int num2){ 11 return num1/num2; 12 } 13 14 public static void main(String[] args) { 15 //传统的把方法的调用方式放在main函数中测试运行 16 int num=new Reckon().add(1, 2); 17 System.out.println(num); 18 } 19 }
下面进行单元测试:
右键新建:选择junit Test Case
接着next,出现下面的画面,用junit4,在下面选择要测试的类,给这个测试类起一个名字。
点击next出现下面的画面,这是选择要测试的方法;
点击finish,添加jar包;
这一步提示我们是否将我们需要的JUnit 4的相关包加入到我们项目的ClassPath路径下,点击OK就行,因为Eclipse中包含JUnit的jar包。
做完上面的会自动生成这样一个测试类;
1 package junit; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Test; 6 7 public class Reckon_Test { 8 9 @Test 10 public void testAdd() { 11 fail("Not yet implemented"); 12 } 13 14 @Test 15 public void testDivide() { 16 fail("Not yet implemented"); 17 } 18 19 }
Test注解表示这是个测试方法;
修改里面的方法:
1 package junit; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Test; 6 7 public class Reckon_Test { 8 9 @Test 10 public void testAdd() { 11 int z=new Reckon().add(2, 8); 12 assertEquals(10,z);//判断得到的z是不是10也就是正确的答案 13 } 14 15 @Test 16 public void testDivide() { 17 int z=new Reckon().divide(8, 2); 18 System.out.println(z); 19 } 20 21 }
右键选择Junit Test 运行
绿色代表测试成功,其中Error:程序出错 Failures:测试失败
如果我们把除数修改为零,则会出现数学异常
常用的方法: