Java单元测试工具:JUnit4(一)——概述及简单例子

(一)JUnit概述及一个简单例子

        看了慕课网的JUnit视频教程: http://www.imooc.com/learn/356,总结笔记。
        这篇笔记记录JUnit的概述,以及一个快速入门的例子。

1.概述

1.1 什么是JUnit

        ①JUnit是用于编写可复用测试集的简单框架,是xUnit的一个子集。xUnit是一套基于测试驱动开发的测试框架,有PythonUnit、CppUnit、JUnit等。
        ②Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
        ③多数Java的开发环境都已经集成了JUnit作为单元测试的工具,比如Eclipse。

1.2 为什么要使用测试工具

        ①测试框架可以帮助我们对编写的程序进行有目的地测试,帮助我们最大限度地避免代码中的bug,以保证系统的正确性和稳定性。
        ②很多人对自己写的代码,测试时就简单写main,然后sysout输出控制台观察结果。这样非常枯燥繁琐,不规范。缺点:测试方法不能一起运行,测试结果要程序猿自己观察才可以判断程序逻辑是否正确。
        ③JUnit的断言机制,可以直接将我们的预期结果和程序运行的结果进行一个比对,确保对结果的可预知性。

1.3 相关链接

JUnit官网: http://junit.org/

2.简单例子快速入门

2.1 创建简单业务类

        使用Eclipse创建一个项目,导入JUnit相关包,因为eclipse集成了JUnit框架,所以可以直接右键项目,选择Build Path → 点击Add Libraries → 选择JUnit  → 点击Next,选择JUnit版本,然后Finish。(其实也可以下载jar包作为用户库来添加)
        编写一个简单的计算类:Calcuate类
[java]   view plain  copy
  1. package jtzen9.util;  
  2. /** 
  3.  * 实现加减乘除的简单计算类 
  4.  * @author Zen9 
  5.  * 
  6.  */  
  7. public class Calcuate {  
  8.     public int add(int a,int b){  
  9.         return a+b;  
  10.     }  
  11.     public int subtract(int a,int b){  
  12.         return a-b;  
  13.     }  
  14.     public int multiply(int a,int b){  
  15.         return a*b;  
  16.     }  
  17.     public int divide(int a,int b){  
  18.         return a/b;  
  19.     }  
  20. }  

2.2 创建测试类

        ①右键Calcuate类,new 一个 JUnit Test Case:


        ②弹出的对话框,暂时不做修改,直接点击next:(这样创建的测试类会在同一个包下,暂时不管测试类和业务类的隔离)


        ③勾选要测试的方法,点击Finish:




2.3 修改生成的测试类代码

        上面步骤生成的测试类只包含测试方法的模板,并没有具体的测试细节,修改成如下:(其中有比较多的重复代码,暂时不管;并将减法的测试设为有问题)
[java]   view plain  copy
  1. package jtzen9.util;  
  2. import org.junit.Assert;  
  3. import org.junit.Test;  
  4. public class CalcuateTest {  
  5.     Calcuate calcuate;  
  6.   
  7.     @Test  
  8.     public void testAdd() {  
  9.         calcuate = new Calcuate();  
  10.         int result = calcuate.add(23);  
  11.         Assert.assertEquals("加法有问题"5, result);  
  12.         /* 
  13.          * "加法有问题":期望值和实际值不一致时,显示的信息 
  14.          * 5 :期望值 
  15.          * result :实际值 
  16.          */  
  17.     }  
  18.   
  19.     @Test  
  20.     public void testSubtract() {  
  21.         calcuate = new Calcuate();  
  22.         int result = calcuate.subtract(122);   
  23.         Assert.assertEquals("减法有问题"10000, result); //故意设置减法期望值为10000  
  24.     }  
  25.   
  26.     @Test  
  27.     public void testMultiply() {  
  28.         calcuate = new Calcuate();  
  29.         int result = calcuate.multiply(23);  
  30.         Assert.assertEquals("乘法有问题"6, result);  
  31.     }  
  32.   
  33.     @Test  
  34.     public void testDivide() {  
  35.         calcuate = new Calcuate();  
  36.         int result = calcuate.divide(63);  
  37.         Assert.assertEquals("除法有问题"2, result);  
  38.     }  
  39. }  

2.4 运行结果

        右键测试类,选择Run As , JUnit Test,结果如下:

        总共有4个测试方法,运行了4个方法;其中failures有1个,即有一个方法的输出结果跟我们的预期不一样。



猜你喜欢

转载自blog.csdn.net/xinlangtianxia/article/details/74205331