您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
探索JUnit 4.4特性
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/3/12 16:00:38 ] 推薦標(biāo)簽:

    優(yōu)點 4:可以將這些 Matcher 匹配符聯(lián)合起來靈活使用,達(dá)到更多目的。如清單 3 所示:

    清單 3 Matcher 匹配符聯(lián)合使用

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

    優(yōu)點 5:錯誤信息更加易懂、可讀且具有描述性(descriptive)。

    JUnit 4.4 以前的版本默認(rèn)出錯后不會拋出額外提示信息,如:

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 會默認(rèn)自動提供一些可讀的描述信息,如清單 4 所示:

    清單 4 JUnit 4.4 默認(rèn)提供一些可讀的描述性錯誤信息

String s = "hello world!";
assertThat( s, anyOf( containsString("developer"), containsString("Works") ) );
// 如果出錯后,系統(tǒng)會自動拋出以下提示信息:
java.lang.AssertionError:
Expected: (a string containing "developer" or a string containing "Works")
got: "hello world!"

    優(yōu)點 6:開發(fā)人員可以通過實現(xiàn) Matcher 接口,定制自己想要的匹配符。當(dāng)開發(fā)人員發(fā)現(xiàn)自己的某些測試代碼在不同的測試中重復(fù)出現(xiàn),經(jīng)常被使用,這時用戶可以自定義匹配符,將這些代碼綁定在一個斷言語句中,從而可以達(dá)到減少重復(fù)代碼并且更加易讀的目的。

上一頁1234567下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd