您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
探索JUnit 4.4特性
作者:网络转载 发布时间:[ 2013/3/12 16:00:38 ] 推荐标签:

    优点 4:可以将这些 Matcher 匹配符联合起来灵活使用,达到更多目的。如清单 3 所示:

    清单 3 Matcher 匹配符联合使用

// 联合匹配符not和equalTo表示“不等于”
assertThat( something, not( equalTo( "developer" ) ) );
// 联合匹配符not和containsString表示“不包含子字符串”
assertThat( something, not( containsString( "Works" ) ) );
// 联合匹配符anyOf和containsString表示“包含任何一个子字符串”
assertThat(something, anyOf(containsString("developer"), containsString("Works")));

    优点 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 接口,定制自己想要的匹配符。当开发人员发现自己的某些测试代码在不同的测试中重复出现,经常被使用,这时用户可以自定义匹配符,将这些代码绑定在一个断言语句中,从而可以达到减少重复代码并且更加易读的目的。

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