亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Junit4 新斷言語法介紹
作者:網絡轉載 發布時間:[ 2014/1/9 9:45:32 ] 推薦標簽:Junit 測試 語法

1. 引言
JUnit4提供的新斷言語法具有很多優點且使用簡單,這已經不再是新鮮事了,可發現在實際測試代碼中仍未被普及應用,特發此文,以期更多的人能掌握運用。
2. assertThat基本語法
Hamcrest 是一個測試輔助工具,提供了一套通用的匹配符 Matcher,靈活使用這些匹配符定義的規則,程序員可以更加精確的表達自己的測試思想,指定所想設定的測試條件。
Junit4結合Hamcrest提供了新的斷言語句-assertThat,只需一個assertThat語句,結合Hamcrest提供的匹配符,可以表達全部的測試思想。
assertThat的基本語法如下:

assertThat(T actual, Matcher matcher)
assertThat(String reason, T actual, Matcher matcher)

actual 是接下來想要驗證的值;
matcher是使用 Hamcrest 匹配符來表達的對前面變量所期望的值的聲明,如果 actual值與 matcher 所表達的期望值相符,則斷言成功,否則斷言失敗。
reason是自定義的斷言失敗時顯示的信息。
一個簡單的例子:
// 如果測試的字符串testedString包含子字符串"taobao"則斷言成功
assertThat( testedString, containsString( "taobao" ) );
3. assertThat優點
統一

只需一條assertThat語句即可替代舊有的其他語句(如assertEquals,assertNotSame,assertFalse,assertTrue,assertNotNull,assertNull等),使斷言變得簡單、代碼風格統一,增強測試代碼的可讀性和可維護性。

語法直觀易懂

assertThat 不再像 assertEquals 那樣,使用比較難懂的“謂賓主”語法模式(如:assertEquals(3, x);)。相反,assertThat 使用了類似于“主謂賓”的易讀語法模式(如:assertThat(x,is(3));),使得代碼更加直觀、易讀,符合人類思維習慣。

錯誤信息更具描述性

舊的斷言語法如果斷言失敗,默認不會有額外的提示信息,如
assertTrue(testedString.indexOf(“taobao”) > -1);
如果該斷言失敗,只會拋出無用的錯誤信息,如java.lang.AssertionError: ,除此之外不會有更多的提示信息。
新的斷言語法會默認自動提供一些可讀的描述信息,如
assertThat(testedString, containsString(“taobao”));
如果該斷言失敗,拋出的錯誤提示信息如下:
java.lang.AssertionError:
Expected: a string containing “taobao”
got: “taoba”


跟Matcher匹配符聯合使用更靈活強大

Matcher提供了功能豐富的匹配符,assertThat結合這些匹配符使用可更靈活更準確的表達測試思想。
// 驗證字符串 s是否含有子字符串 "taobao" 或 "qa" 中間的一個
// 舊的斷言,不直觀,需要分析代碼邏輯明白驗證意圖
assertTrue(s.indexOf("taobao")>-1||s.indexOf("qa")>-1);
// 新的斷言,直觀易懂,準確表達測試思想
assertThat(s,anyOf(containsString("taobao"),containsString("qa")));
// anyOf滿足條件之一即成立,containsString包含字符串則成立
4. assertThat使用
要想發揮assetThat的威力,必須跟Hamcrest聯合使用,JUnit4本身包含了一些自帶了一些 Hamcrest 的匹配符 Matcher,但是只有有限的幾個。因此建議你將Hamcrest包加入項目。
在pom里加入Hamcrest依賴。
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.1</version>
</dependency>
在測試類里導入包
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
通過例子學習是有效的學習方式之一,下面通過常用的示例演示如何使用assertThat,更詳細的用法請參考Hamcrest相關文檔。
字符相關匹配符

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产啪视频免费视频观看视频 | 欧美精品一二三区 | 久久国产精品1区2区3区网页 | 国产视频综合 | 91高素质城中村在线观看 | 97在线免费视频 | 国产日韩亚洲不卡高清在线观看 | 免费人成激情视频在线观看 | 国产精品自在欧美一区 | 国产精品久久久久9999高清 | 青青草狠狠干 | 999久久免费高清热精品 | 成人免费视频一区 | 黄色长视频 | 成人看视频 | 欧美xxxx色视频在线观看免费 | 日韩不卡一级毛片免费 | 19禁啪啪无遮挡免费网站 | 欧美韩国日本在线观看 | 亚洲第一毛片 | a国产视频 | 欧美激情视频二区三区 | 免费高清资源黄网站在线观看 | 国产日产精品_国产精品毛片 | 国产夜夜爽 | 看成年女人免费午夜视频 | 国产在线观看黄色 | 黄网站免费看 | 国产在线视频网 | 精品成人免费播放国产片 | 成人国产欧美精品一区二区 | 无码专区aaaaaa免费视频 | 97色女| 日韩经典视频 | 九九性视频 | 久久久精品午夜免费不卡 | 黄色黑丝网站 | 亚洲欧美香蕉在线日韩精选 | 中文字幕中文字幕 | 欧美精品在线免费观看 | 成人免费在线视频网 |