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

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

探索 JUnit 4.4 新特性

发布: 2008-10-10 15:33 | 作者: seanhe | 来源: 测试时代采编 | 查看: 1886次 | 进入软件测试论坛讨论

领测软件测试网


  • 优点 5:错误信息更加易懂、可读且具有描述性(descriptive)。

    JUnit 4.4 以前的版本默认出错后不会抛出额外提示信息,如:

    assertTrue( s.indexOf("developer") > -1 || s.indexOf("Works") > -1 );

    如果该断言出错,只会抛出无用的错误信息,如:junit.framework.AssertionFailedError:null

    如果想在出错时想打印出一些有用的提示信息,必须得程序员另外手动写,如:

    assertTrue( "Expected a string containing 'developer' or 'Works'", 
        s.indexOf("developer") > -1 || s.indexOf("Works") > -1 );
    

    非常的不方便,而且需要额外代码。

    JUnit 4.4 会默认自动提供一些可读的描述信息,如清单 4 所示:



    清单 4 JUnit 4.4 默认提供一些可读的描述性错误信息
    						
    String s = "hello world!"; 
    assertThat( s, anyOf( containsString("developer"), containsString("Works") ) ); 
    // 如果出错后,系统会自动抛出以下提示信息:
    java.lang.AssertionError: 
    Expected: (a string containing "developer" or a string containing "Works") 
    got: "hello world!"
    

  • 优点 6:开发人员可以通过实现 Matcher 接口,定制自己想要的匹配符。当开发人员发现自己的某些测试代码在不同的测试中重复出现,经常被使用,这时用户就可以自定义匹配符,将这些代码绑定在一个断言语句中,从而可以达到减少重复代码并且更加易读的目的。(具体怎么实现自定义可配置的匹配符,请参阅参考资料)
  • 如何使用 assertThat

    JUnit 4.4 自带了一些 Hamcrest 的匹配符 Matcher,但是只有有限的几个,在类 org.hamcrest.CoreMatchers 中定义,要想使用他们,必须导入包 org.hamcrest.CoreMatchers.*

    如果想使用一些其他更多的匹配符 Matcher,可以从 Hamcrest 网页下载 hamcrest-library-1.1.jarhamcrest-core-1.1.jar(请参阅 参考资料),并将其加入到工程库中,所有的匹配符都在类 org.hamcrest.Matchers 中定义,要想使用,必须得在代码中 import static org.hamcrest.Matchers.*;。如果使用外部的匹配符,最好就不要再使用 JUnit 4.4 自带的匹配符了,因为这样容易导致匹配符 Matcher 重复定义,编译可能会出错(ambiguous for the type)。 JUnit 4.4 允许使用 Hamcrest 来使用更多的匹配符,这还是 JUnit 第一次允许在自己的工程中使用第三方类。

    注意:

    1. assertThat 仍然是断言语句,所以要想使用,必须还得 import static org.junit.Assert.*;
    2. 虽然 assertThat 可以代替以前所有的断言语句,但是以前的所有 assert 语句仍然可以继续使用;

    延伸阅读

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

    52/5<12345>

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

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