第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

僅驗(yàn)證方法池中的特定交互

僅驗(yàn)證方法池中的特定交互

人到中年有點(diǎn)甜 2023-06-04 15:42:46
我目前正在編寫黑盒測試,我必須使用 Mockito 驗(yàn)證是否使用特定參數(shù)調(diào)用了方法池中的一個(gè)方法。是否調(diào)用特定方法并不重要,但必須調(diào)用其中一個(gè)方法。此外,如果方法被調(diào)用,我想驗(yàn)證它們是否僅使用特定參數(shù)調(diào)用。在具體層面上:我有這個(gè)類被模擬并注入我的黑匣子:class Mock {    void option1(String arg1)    void option2(String arg1, int arg2)    void option3(String arg1, int arg2, int arg3)    void otherMethod()}在黑盒內(nèi),一個(gè)或多個(gè)“optionX”方法被調(diào)用一次或多次。現(xiàn)在我想驗(yàn)證至少有一個(gè)“optionX”方法在黑盒子中被調(diào)用,并且如果任何“optionX”方法被調(diào)用,它只會(huì)用特定的參數(shù)調(diào)用。目前的測試代碼是這樣的Mock mock = spy(realObject);blackbox.doBlackboxStuff(mock);verify(mock, atLeast(1)).option1("Test");verify(mock, atLeast(1)).option2("Test", 1);verify(mock, atLeast(1)).option3("Test", 1, 2);verifyNoMoreInteractions(mock);像上面這樣單獨(dú)的“atLeast(1) 驗(yàn)證”是行不通的,因?yàn)檫@樣每個(gè)方法都必須被調(diào)用。此外,我不能保證黑盒不會(huì)調(diào)用 otherMethod(),因此 verifyNoMoreInteractions 將失敗,即使我不關(guān)心 otherMethod() 調(diào)用。有沒有一種優(yōu)雅的方法來解決這個(gè)問題(或者至少是一種方法)?
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

有一種方法有點(diǎn)老套但應(yīng)該有效:


MockingDetails details = Mockito.mockingDetails(mock);

Collection<Invocation> invocations = details.getInvocations();


for(Invocation invocation: invocations){

? ?if(CollectionUtils.isNotEmpty(invocation.getRawArguments()){

? ? ? return;

? ?}

}


fail();

所以基本上,如果至少有一個(gè)調(diào)用包含您的測試通過的任何參數(shù)。假設(shè)otherMethod沒有示例中的參數(shù)。


查看完整回答
反對(duì) 回復(fù) 2023-06-04
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

可能是你所有的方法option1......option3調(diào)用一些常見的輔助方法。至少它們名稱的相似性表明在功能上也可能存在一些相似性?,F(xiàn)在,讓我們假設(shè)他們都打電話給helperoptionx然后,您可以檢查是否調(diào)用了任何方法,而不是檢查是否helper調(diào)用了任何方法。



查看完整回答
反對(duì) 回復(fù) 2023-06-04
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)