Java笔记18:JUnit单元测试


http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22junit%22%20AND%20a%3A%22junit%22

上下载最新的junit包。

 

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

 


建立com.abcpackage,在该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)右键点击要测试的类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);
   }
 
}

开始测试

右键点击CalculatorTest“Run As”“JUnitTest”,报initializationError的错误

这个错误是因为少了junit-4.12.jar的两个依赖包:hamcrest-core-1.3.rc2.jarhamcrest-library-1.3.rc2.jar

 

从网络上下载这两个包并添加到工程中:


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

上述结果显示了两个方法是正确的,一个方法是计算结果错误,另一个方法是编译错误。

 

点击testMinus,可以查看错误信息为计算结果应该为10却计算成了19


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值