日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hamcrest

發(fā)布時(shí)間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hamcrest 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在以前的junit測(cè)試中常用到斷言,但是沒(méi)有研究斷言的源代碼,最近在項(xiàng)目中采用swtbot時(shí)候,發(fā)現(xiàn)項(xiàng)目swtbot和junit底層都使用了hamcrest作為匹配工具 的.

SWTBot中finder中采用的是Hamcrest實(shí)現(xiàn)的.其中常用的如下:
1,WithText可以matcher有g(shù)etText方法的swt widget。
2,WithLabel用來(lái)matcher特定的Label和CLabel widget。
3,WithId用來(lái)matcher控件的屬性和值對(duì)。
4,WithMnemonic用來(lái)matcher有g(shù)etText方法且會(huì)有助記符&的widget。
5,WidgetOfType用來(lái)matcher控件的類(lèi)名。
6, WithToolTip可以matcher有g(shù)etToolTipText方法的swt widget。
7,WithItem可以matcher有g(shù)etItems方法的swt widget。
8,WithStyle可以matcher有特定樣式的swt widget,如withStyle(SWT.PUSH,”SWT.PUSH”)。
9,WithRegex擴(kuò)展withText用來(lái)matcher文本正則表示的widget。
10,InGroup可以在一個(gè)group內(nèi)matcher swt widget。
11,InUIThread在一個(gè)UIThread內(nèi)matcher另一個(gè)matcher。
12, AllOf用來(lái)定義matcher方法集來(lái)區(qū)配swt widget。

Hamcrest是什么東西呢?
Hamcrest是一個(gè)書(shū)寫(xiě)匹配器對(duì)象時(shí)允許直接定義匹配規(guī)則的框架.有大量的匹配器是侵入式的,例如UI驗(yàn)證或者數(shù)據(jù)過(guò)濾,但是匹配對(duì)象在書(shū)寫(xiě)靈活的測(cè)試是最常用.本教程將告訴你如何使用Hamcrest進(jìn)行單元測(cè)試.
Hamcrest從一開(kāi)始就設(shè)計(jì)結(jié)合不同的單元測(cè)試框架.例如,Hamcrest可以使用JUnit3和4和TestNG.(詳細(xì)查看完整Hamcrest發(fā)布中的例子).在一個(gè)現(xiàn)有的測(cè)試套件中遷移到使用Hamcrest風(fēng)格的斷言是很容易的,因?yàn)槠渌麛嘌燥L(fēng)格可以和Hamcrest的共存.
通過(guò)使用從mock Objects框架概念匹配器到Hamcrest匹配器橋接適配器Hamcrest也可以在mock objects框架中.例如,JMock 1系統(tǒng)規(guī)定是Hamcrest風(fēng)格.Hamcrest提供了一個(gè)JMock 1適配器來(lái)允許你在JMock 1測(cè)試中使用Hamcrest匹配器.JMock 2不需要這樣一個(gè)適配器層,因?yàn)樗辉O(shè)計(jì)使用Hamcrest作為一個(gè)匹配庫(kù).Hamcrest還提供了EasyMock 2適配器.同樣,詳細(xì)查看Hamcrest例子.
Hamcrest帶有一個(gè)有用的匹配器庫(kù).以下是一些最重要的.
核心
anything - 總是匹配,如果你不關(guān)心測(cè)試下的對(duì)象是什么是有用的
describedAs - 添加一個(gè)定制的失敗表述裝飾器
is - 改進(jìn)可讀性裝飾器 - 見(jiàn)下 “Sugar”
邏輯
allOf - 如果所有匹配器都匹配才匹配, short circuits (很難懂的一個(gè)詞,意譯是短路,感覺(jué)不對(duì),就沒(méi)有翻譯)(像 Java &&)
anyOf - 如果任何匹配器匹配就匹配, short circuits (像 Java ||)
not - 如果包裝的匹配器不匹配器時(shí)匹配,反之亦然
對(duì)象
equalTo - 測(cè)試對(duì)象相等使用Object.equals方法
hasToString - 測(cè)試Object.toString方法
instanceOf, isCompatibleType - 測(cè)試類(lèi)型
notNullValue, nullValue - 測(cè)試null
sameInstance - 測(cè)試對(duì)象實(shí)例
Beans
hasProperty - 測(cè)試JavaBeans屬性
集合
array - 測(cè)試一個(gè)數(shù)組元素test an array’s elements against an array of matchers
hasEntry, hasKey, hasValue - 測(cè)試一個(gè)Map包含一個(gè)實(shí)體,鍵或者值
hasItem, hasItems - 測(cè)試一個(gè)集合包含一個(gè)元素
hasItemInArray - 測(cè)試一個(gè)數(shù)組包含一個(gè)元素
數(shù)字
closeTo - 測(cè)試浮點(diǎn)值接近給定的值
greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo - 測(cè)試次序
文本
equalToIgnoringCase - 測(cè)試字符串相等忽略大小寫(xiě)
equalToIgnoringWhiteSpace - 測(cè)試字符串忽略空白
containsString, endsWith, startsWith - 測(cè)試字符串匹配

總結(jié)

以上是生活随笔為你收集整理的Hamcrest的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。