• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

全面认识JUnit 4的新特征

发布: 2009-4-08 09:57 | 作者: 不详 | 来源: 测试时代采编 | 查看: 116次 | 进入软件测试论坛讨论

领测软件测试网

@Test public void divide() {
   calculator.add(8);
   calculator.divide(2);
   assert calculator.getResult() == 5;
  }
  @Test(expected = ArithmeticException.class)
  public void divideByZero() {
   calculator.divide(0);
  }
  @Ignore( "not ready yet")
  @Test
  public void multiply() {
   calculator.add(10);
   calculator.multiply(10);
   assertEquals(calculator.getResult(), 100);
  }
}三、 包

  首先,你可以看到,JUnit 4使用org.junit.*包而JUnit 3.8使用的是junit.framework.*。当然,为了向后兼容性起见,JUnit 4jar文件发行中加入了这两种包。

  四、 继承

   在中,测试类不必再扩展junit.framework.TestCase;事实上,它们不必须扩展任何内容。但是,JUnit 4中使用的是注解。为了以一个测试用例方式执行,一个JUnit 4类中至少需要一个@Test注解。例如,如果你仅使用@Before和@After注解而没有至少提供一个@Test方法来编写一个类,那么,当你试图 执行它时将得到一个错误:

java.lang.Exception: No runnable methods.

  五、 断言(Assert)方法

   因为在JUnit 4中一个测试类并不继承自TestCase(在JUnit 3.8中,这个类中定义了assertEquals()方法),所以你必须使用前缀语法(举例来说,Assert.assertEquals())或者 (由于JDK5.0)静态地导入Assert类。这样以来,你就可以完全象以前一样使用assertEquals方法(举例来说, assertEquals())。

  另外,在JUnit 4中,还引入了两个新的断言方法,它们专门用于数组对象的比较。如果两个数组包含的元素都相等,那么这两个数组就是相等的。

public static void assertEquals(String message, Object[] expecteds, Object[] actuals);
public static void assertEquals(Object[] expecteds, Object[] actuals);
   由于JDK 5.0的自动装箱机制的出现,原先的12个assertEquals方法全部去掉了。例如,原先JUnit 3.8中的assertEquals(long,long)方法在JUnit 4中要使用assertEquals(Object,Object)。对于assertEquals(byte,byte)、assertEquals (int,int)等也是这样。这种改进将有助于避免反模式。

  在JUnit 4中,新集成了一个assert关键字(见我们的例子中的divide()方法)。你可以象使用assertEquals方法一样来使用它,因为它们都抛 出相同的异常(java.lang.AssertionError)。JUnit 3.8的assertEquals将抛出一个junit.framework.AssertionFailedError。注意,当使用assert时, 你必须指定Java的"-ea"参数;否则,断言将被忽略。

  六、 预设环境(Fixture)

   Fixture是在测试期间初始化和释放任何普通对象的方法。在JUnit 3.8中,你要使用setUp()来实现运行每一个测试前的初始化工作,然后使用tearDown()来进行每个测试后的清理。这两个方法在 TestCase类中都得到重载,因此都被唯一定义。注意,我在这个Setup方法使用的是Java5.0内置的@Override注解-这个注解指示该 方法声明要重载在超类中的方法声明。在JUnit 4中,则代之使用的是@Before和@After注解;而且,可以以任何命名(在我们的例子中是clearCalculator())来调用这些方法。 在本文后面,我将更多地解释这些注解。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网