2 建立名为JunitTest的Java Project,把下载的junit-4.12.jar添加到工程中

 
3 建立com.abc的package,在该package下建立Calculator.java,用来实现加减乘除运算。
package com.abc; public class Calculator {      public int add(int a,int b) {       return a + b;   }    public int minus(int a,int b) {       return a - 1;  //故意写错,方便测试   }      public int divide(int a,int b) {       return a / b;   }      public int mul(int a,int b) {       return a * b;   }}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.
   
   
4 创建测试类
  
(1)右键点击要测试的类Calculator.java,“New”,“JUnit Test Case”

  
  
(2)这里有四个方法可选
setUpBeforeClass()和setUp()是用于测试之前的准备工作。区别在于setUpBeforeClass()是针对整个类的,只执行一次;setUp()是针对方法的,每个测试方法被执行之前都会先执行setUp()。
tearDownAfterClass()和tearDown()是用于测试之后释放资源的。区别在于tearDownAfterClass()是针对整个类的,只执行一次;tearDown()是针对方法的,每个测试方法被执行后都会执行tearDown()。
  
这里勾选setUpBeforClass()。

 
3)这里可以选择要测试的方法。把四个运算方法都选上。
 
 
4)点击finish后生成的代码如下图所示

  
5)编写测试类代码
package com.abc; import static org.junit.Assert.*; import org.junit.Before;import org.junit.Test; public class CalculatorTest {   Calculator cal;      @Before   public void setUp()throws Exception{       cal = new Calculator();   }    @Test   public void testAdd() {       int res = cal.add(20, 10);       assertEquals("加法错误",res, 30);   }    @Test   public void testMinus() {       int res = cal.minus(20, 10);       assertEquals("减法错误",res, 10);   }    @Test   public void testDivide() {       int res = cal.divide(20, 10);       assertEquals("除法错误",res, 2);       res =cal.divide(20, 0);   }    @Test   public void testMul() {       int res = cal.mul(20, 10);       assertEquals("乘法错误",res, 200);   } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.5 开始测试
  
右键点击CalculatorTest,“Run As”,“JUnitTest”,报initializationError的错误
  
这个错误是因为少了junit-4.12.jar的两个依赖包:hamcrest-core-1.3.rc2.jar和hamcrest-library-1.3.rc2.jar。
  
  
从网络上下载这两个包并添加到工程中:

  
 
 
重新进行单元测试,结果如下:

  
  
上述结果显示了两个方法是正确的,一个方法是计算结果错误,另一个方法是编译错误。
  
  
点击testMinus,可以查看错误信息为计算结果应该为10却计算成了19。

  
  
testDivide,可以看到错误信息为除数不能为0。

 
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删