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

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

使用 junit 構(gòu)建基本單元測(cè)試和抽象驗(yàn)證

使用 junit 構(gòu)建基本單元測(cè)試和抽象驗(yàn)證

大話西游666 2021-09-12 10:37:13
假設(shè)我正在為移動(dòng)應(yīng)用程序構(gòu)建按月訂閱收費(fèi)功能,有多種收費(fèi)方式??梢酝ㄟ^(guò) Apple Pay、Google 錢包、paypal、visa/master 取決于平臺(tái)。每個(gè)提供者都有自己的實(shí)現(xiàn)和各自的 JUnit 測(cè)試(因?yàn)樗麄兪褂玫氖?Java)。為了評(píng)估幾個(gè)基本功能,每個(gè)實(shí)現(xiàn)都必須驗(yàn)證的情況很少。因此,計(jì)劃是編寫基本測(cè)試并調(diào)用抽象驗(yàn)證方法。這是我的方法,public abstract class BaseBillingTest { public abstract BillCharger getBillCharger(); public abstract void ValidateTest1(Bill input, Bill output);  public void tests_case_1(){  Bill input = new Bill(<some value>);  Bill Output = getBillCharger().charge(input);  ValidateTest1(input, output); }}任何派生的測(cè)試類都將實(shí)現(xiàn)抽象方法,因此它有責(zé)任實(shí)現(xiàn)驗(yàn)證方法。派生測(cè)試類不需要知道基礎(chǔ)測(cè)試中發(fā)生了什么,因?yàn)樗鼈兛梢愿鶕?jù)輸入驗(yàn)證輸出。有什么建議可以以更優(yōu)雅的方式解決這個(gè)問(wèn)題嗎?我可以在這種情況下應(yīng)用任何設(shè)計(jì)模式嗎?
查看完整描述

2 回答

?
慕標(biāo)5832272

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

在我看來(lái),您的繼承示例并不是使用這兩種抽象方法的最佳方式。一個(gè)是結(jié)構(gòu)性的,另一個(gè)是靜態(tài)的 - 您可以根據(jù)另一個(gè)法案驗(yàn)證一個(gè)法案。

在這兩種情況下,繼承在這里都不是正確的關(guān)系。您可以成功地將工廠模式用于“getBillCharger”或更現(xiàn)代的 TestDataBuilders 或 ObjectMother 模式。

對(duì)于第二種方法,您可以只使用輔助類。如果需要在 Test 類中多次調(diào)用相同的構(gòu)造邏輯,可以使用 @Before

一個(gè)重要的方面是,如果您將 tests_case_1 放在超類中,您將隱藏部分邏輯并且您的測(cè)試不會(huì)那么明顯。我更喜歡更明確和可見的測(cè)試用例,因此我會(huì)避免這種設(shè)置。


查看完整回答
反對(duì) 回復(fù) 2021-09-12
?
青春有我

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

事實(shí)上,最初的方法確實(shí)應(yīng)用了一種設(shè)計(jì)模式,它稱為Template Method

OTOH,這些問(wèn)題本身就帶有尋找設(shè)計(jì)模式作為目標(biāo)的輕微氣味。為什么要麻煩,如果他們手頭已經(jīng)有了滿足功能(此處:測(cè)試正確的東西)和非功能(此處:將公共部分與具體部分明確分開)要求的解決方案。我會(huì)接受的一個(gè)原因是:溝通,例如:能夠?yàn)樵O(shè)計(jì)命名,以便同事快速了解我的意圖。


查看完整回答
反對(duì) 回復(fù) 2021-09-12
  • 2 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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