JUnit单元测试
什么是JUnit
①JUnit是用于编写可复用测试集的简单框架,是xUnit的一个子集。xUnit是一套基于测试驱动开发的测试框架,有PythonUnit、CppUnit、JUnit等。
②Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
③多数Java的开发环境都已经集成了JUnit作为单元测试的工具,比如Eclipse。
为什么要使用测试工具
①测试框架可以帮助我们对编写的程序进行有目的地测试,帮助我们最大限度地避免代码中的bug,以保证系统的正确性和稳定性。
②很多人对自己写的代码,测试时就简单写main,然后sysout输出控制台观察结果。这样非常枯燥繁琐,不规范。缺点:测试方法不能一起运行,测试结果要程序猿自己观察才可以判断程序逻辑是否正确。
③JUnit的断言机制,可以直接将我们的预期结果和程序运行的结果进行一个比对,确保对结果的可预知性。
简单例子:
被测试类:
package junit; /** * 加减乘除的简单计算类 * @author qzkuan */ public class Calcuate { public int add(int a,int b){ return a+b; } public int subtract(int a,int b){ return a-b; } public int multiply(int a,int b){ return a*b; } public int divide(int a,int b){ return a/b; } }
测试类:
1 package junit; 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(2, 3); 11 Assert.assertEquals("add error", 5, result); 12 /* 13 * "add error":期望值和实际值不一致时,显示的信息 14 * 5 :期望值 15 * result :实际值 16 */ 17 } 18 19 @Test 20 public void testSubtract() { 21 calcuate = new Calcuate(); 22 int result = calcuate.subtract(12, 2); 23 Assert.assertEquals("subtract error", 10, result); 24 } 25 26 @Test 27 public void testMultiply() { 28 calcuate = new Calcuate(); 29 int result = calcuate.multiply(2, 3); 30 Assert.assertEquals("multiply error", 6, result); 31 } 32 33 @Test 34 public void testDivide() { 35 calcuate = new Calcuate(); 36 int result = calcuate.divide(6, 3); 37 Assert.assertEquals("divide error", 2, result); 38 } 39 }