您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
JUnit简单使用教程
作者:网络转载 发布时间:[ 2016/6/12 14:46:09 ] 推荐标签:单元测试 Junit 软件测试工具

  Demo如下:
  @RunWith(Parameterized.class)
  public class SquareTest {
  private static Calculator calculator = new Calculator();
  private int param;//参数
  private int result;//期望值
  // 准备数据 
  @Parameters  
  public static Collection data() {
  return Arrays.asList(new Object[][]{{2, 4},{0, 0},{-3, 9}});
  }
  //构造函数,对变量进行初始化
  public SquareTest(int param, int result) {
  this.param = param;
  this.result = result;
  }
  @Test  
  public void square() {
  calculator.square(param);
  assertEquals(result, calculator.getResult());
  }
  }
  打包测试
  在一个项目中,只写一个测试类是不可能的,我们会写出很多很多个测试类。可是这些测试类必须一个一个的执行,也是比较麻烦的事情。鉴于此,JUnit为我们提供了打包测试的功能,将所有需要运行的测试类集中起来,一次性的运行完毕,大大的方便了我们的测试工作。具体代码如下:
  @RunWith(Suite.class)
  @Suite.SuiteClasses({ CalculatorTest.class,SquareTest.class})
  public class AllCalculatorTests{
  }
  大家可以看到,这个功能也需要使用一个特殊的Runner,因此我们需要向@RunWith注解传递一个参数Suite.class。同时,我们还需要另外一个注解@Suite.SuiteClasses,来表明这个类是一个打包测试类。我们把需要打包的类作为参数传递给该注解可以了。有了这两个注解之后,已经完整的表达了所有的含义,因此下面的类已经无关紧要,随便起一个类名,内容全部为空既可。
  异常测试
  在JUnit 4之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTrue(true)来测试。现在,可以通过@Test 注解中的expected属性来测试异常。expected属性的值是一个异常的类型。
  Demo如下:
  @Test(expected=ArithmeticException.class)
  public void testDivide() {
  new Calculator().divide(6, 0);
  }
  测试
  对于那些逻辑很复杂,循环嵌套比较深的程序,很有可能出现死循环,因此一定要采取一些预防措施。测试是一个很好的解决方案。我们给这些测试方法设定一个执行时间,超过了这个时间,他们会被系统强行终止,并且系统还会向你汇报该方法结束的原因是因为超时,这样你可以发现这些Bug了。要实现这一功能,只需要给@Test 注解加一个timeout属性,该注解传入了一个时间(毫秒)给测试方法,如果测试方法在指定的时间之内没有运行完,则测试失败。
  Demo如下:  
  @Test(timeout=1000)
  public void testDeathLoop() {
  new Calculator().deathLoop();
  }
  单元测试运行结果:java.lang.Exception: test timed out after 1000 milliseconds
  at test.Calculator.deathLoop(Calculator.java:25)
  at test.CaculatorTest.testDeathLoop(CaculatorTest.java:26)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  …………………………

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd