JUnit(第三讲:测试运行器)_追逐梦想的顾咏丰_新浪博客

JUnit(第三讲:测试运行器)

在上一讲,我们编写了一个简单的测试类CaculatorTest 类,来对类Caculator进行测试。我们写好了测试类,然后点击eclipse中的“Run as -> JUnit Test”,就会得到相应的测试结果。

现在的问题是,我们并不想每次总是点击eclipse中的 “Run as -> JUnit Test”,这样太麻烦了,不便于我们自动化测试及收集,测试运行器 恰恰提供了我们这个功能,见下图。

首先编写一个简单的类 Halo.java。

public class Halo {
  public int say(){
    int[] a = new int[3];
    return a[3];
  }
  public String speak(){
    return ("s");
  }
  public String present(){
    return "p";
  }
}

然后编写测试类 HaloTest.java。

import org.junit.*;
public class HaloTest {
  Halo h = new Halo();
  @Test
  public void testsay(){
    int res = h.say();
    Assert.assertEquals(1, res);
  }
  @Test
  public void testspeak(){
    String res = h.speak();
    Assert.assertEquals("s", res);
  }
  @Test
  public void testpresent(){
    String res = h.present();
    Assert.assertEquals("p", res);
  }
}

于是继续探究 JUnit,找到了重要的东西 测试运行器 JUnitCore,我们为了执行测试类HaloTest,声明创建Result对象,用Failure对象来记录测试用例失败的信息,代码如下

Result res = JUnitCore.runClasses(HaloTest.class); // 执行HaloTest文件
System.out.println(res.wasSuccessful()); // 返回是否全部通过测试用例

for(Failure failure:res.getFailures()){
  System.out.println(failure.getTrace());
}

执行上述代码,就相当于调用并执行了 HaloTest.class 文件,结果如下

JUnit(第三讲:测试运行器)

可以看出,“false”表示测试类 HaloTest 运行失败,具体的 failure 有1个,也就在执行 HaloTest 中的 testsay时,发生了错误。

报错信息为“ArrayIndexOutOfBoundsException”,找到 Halo类的第19行,发现是调用的值,超出了数组的长度(当然了,对a也没有赋值)。

return a[3];   // Halo.java 第19行


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值