真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mockito2參數(shù)匹配器

Mockito 通過使用?equals()?這種自然的 Java 樣式來校驗(yàn)參數(shù)值。有時(shí)候,當(dāng)需要有其他一些靈活性的時(shí)候,你可能會(huì)要求使用參數(shù)匹配(argument matchers)。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括工農(nóng)網(wǎng)站建設(shè)、工農(nóng)網(wǎng)站制作、工農(nóng)網(wǎng)頁制作以及工農(nóng)網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,工農(nóng)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到工農(nóng)省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

請參考下面的代碼:

//stubbing using built-in anyInt() argument matcher
when(mockedList.get(anyInt())).thenReturn("element");
?
//stubbing using custom matcher (let's say isValid() returns your own matcher implementation):
when(mockedList.contains(argThat(isValid()))).thenReturn("element");
?
//following prints "element"
System.out.println(mockedList.get(999));
?
//you can also verify using an argument matcher
verify(mockedList).get(anyInt());
?
//argument matchers can also be written as Java 8 Lambdas
verify(mockedList).add(argThat(someString -> someString.length() >?5));

參數(shù)匹配運(yùn)行進(jìn)行靈活校驗(yàn)或者打標(biāo)。

請?jiān)L問?https://static.javadoc.io/org.mockito/mockito-core/3.0.0/org/mockito/hamcrest/MockitoHamcrest.html?鏈接來查看更多有關(guān)自定義參數(shù)匹配器/hamcrest matchers(custom argument matchers/hamcrest matchers)的內(nèi)建參數(shù)匹配器和示例。

更多有關(guān)?自定義參數(shù)匹配器(custom argument matchers)的使用,請參考?ArgumentMatcher?類的 API 文檔。

在使用復(fù)雜參數(shù)匹配器的時(shí)候需要謹(jǐn)慎。嘗試給一個(gè)干凈并且簡單的測試的時(shí)候,盡量選擇自然的參數(shù)匹配使用的是??equals()?對比相對偶然使用??anyX()?來說。有時(shí)候可能對你的代碼進(jìn)行一些重構(gòu)來允許??equals()?進(jìn)行匹配,或者可以實(shí)現(xiàn)(implement)equals()方法來幫助進(jìn)行測試。

同時(shí),請閱讀?Capturing arguments for further assertions (Since 1.8.0)?頁面中的內(nèi)容,或者參考?ArgumentCaptor?類的 API。

ArgumentCaptor?是有關(guān)參數(shù)匹配器的是特殊實(shí)現(xiàn),能夠?yàn)楹竺娴膶Ρ龋╝ssertions)捕獲參數(shù)變量。

參數(shù)匹配器的寫法

如果你現(xiàn)在正在使用參數(shù)匹配器,所有參數(shù)(all arguments)都必須由 matches 提供。

下面的示例代碼顯示校驗(yàn),但是一些將會(huì)應(yīng)用到打標(biāo)中。

verify(mock).someMethod(anyInt(), anyString(), eq("third argument"));
//above is correct - eq() is also an argument matcher
?
verify(mock).someMethod(anyInt(), anyString(),?"third argument");
//above is incorrect - exception will be thrown because third argument is given without an argument matcher.

像?anyObject(),?eq()?Matcher 方法不會(huì)返回?matchers。

在內(nèi)部,他們將會(huì)在堆棧(stack)中記錄一個(gè)?matcher 然后返回一個(gè)虛假的值(通常為 null)。

這種實(shí)現(xiàn)方式是基于 Java 編譯器中有關(guān)靜態(tài)類型的安全性問題而考慮的,從而帶來的結(jié)果是你不能在?verified/stubbed 方法外部使用?anyObject(),?eq()。

?

https://www.cwiki.us/display/MockitoZH/Argument+matchers


網(wǎng)站題目:Mockito2參數(shù)匹配器
網(wǎng)站地址:http://weahome.cn/article/jssgsc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部