什么是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 @Test20 public void testSubtract() {21 calcuate = new Calcuate();22 int result = calcuate.subtract(12, 2); 23 Assert.assertEquals("subtract error", 10, result);24 }25 26 @Test27 public void testMultiply() {28 calcuate = new Calcuate();29 int result = calcuate.multiply(2, 3);30 Assert.assertEquals("multiply error", 6, result);31 }32 33 @Test34 public void testDivide() {35 calcuate = new Calcuate();36 int result = calcuate.divide(6, 3);37 Assert.assertEquals("divide error", 2, result);38 }39 }