java中的单元测试Junit4

时间:2022-09-13 18:27:01

首先就是主要简单的讲一下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

java中的单元测试Junit4

接着next,出现下面的画面,用junit4,在下面选择要测试的类,给这个测试类起一个名字。

 java中的单元测试Junit4

点击next出现下面的画面,这是选择要测试的方法;

java中的单元测试Junit4

点击finish,添加jar包;

java中的单元测试Junit4

这一步提示我们是否将我们需要的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 运行

java中的单元测试Junit4

  绿色代表测试成功,其中Error:程序出错       Failures:测试失败

 如果我们把除数修改为零,则会出现数学异常

java中的单元测试Junit4

常用的方法:

java中的单元测试Junit4