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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何測試類似轉(zhuǎn)換器的東西

如何測試類似轉(zhuǎn)換器的東西

慕工程0101907 2021-05-20 18:06:05
我有一個關(guān)于測試類(如轉(zhuǎn)換器)的問題??梢哉f我有一個從EntityA到EntityB的轉(zhuǎn)換器。轉(zhuǎn)換器看起來像這樣:public EntityB convert(EntityA){     //call interal methods     return B.}private xy internalMethod1(...){   //call other interal Method}private xy internalMethod2(...){   ....}private xy internalMethod3(...){   ....}private xy internalMethod4(...){   ....}轉(zhuǎn)換器具有一個公共方法和4個內(nèi)部方法來轉(zhuǎn)換實體。我應(yīng)該如何測試?Option1 我僅測試公共方法,并通過不同的示例輸入涵蓋了internalMethods中的所有情況。優(yōu)點:僅測試“接口”。不知道內(nèi)部結(jié)構(gòu)。內(nèi)部重構(gòu)非常容易,不需要在測試中進行任何更改。缺點:測試所有案例的測試可能很大,可能不清楚。每個輸入都必須通過所有方法。Option2 我為公共方法和私有方法編寫測試。(某些testframeworks可以訪問諸如powermock或spock(groovy)之類的私有方法。)我單獨測試每個方法并模擬其他每個內(nèi)部方法。優(yōu)點:真正的小型測試,僅測試方法本身并模擬所有其他方法。缺點:我知道它是如何內(nèi)部實現(xiàn)的,如果我在內(nèi)部調(diào)用結(jié)構(gòu)上重構(gòu)某些方法,某些方法名或某些內(nèi)容,則必須更改測試Option3 我編寫了一些新的類,這些類負責內(nèi)部工作并具有公共方法優(yōu)點:測試可能更清晰,并且僅針對特殊班級。缺點:一項轉(zhuǎn)換任務(wù)需要更多類。請幫助我,這里的最佳做法是什么。也許一些良好的鏈接/提示。感謝您的時間。
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

您提出的觀點是正確的,但我認為您可能無法正確估算它們的權(quán)重。

編寫易碎的測試(與實現(xiàn)代碼耦合的測試)會導致難以更改的剛性代碼庫。由于編寫測試的第一要點是能夠快速進行,因此適得其反。

這就是為什么您僅通過API編寫測試的原因-它使測試與實現(xiàn)分離。正如您已經(jīng)說過的那樣,這可能會使編寫測試變得更加困難,但是值得付出的努力是值得的,因為您將獲得安全性并能夠輕松進行重構(gòu)。

當您看到代碼氣味時,選項3起作用,其中某些測試僅覆蓋部分代碼,而其他測試僅覆蓋代碼的其他部分。這通常意味著可能需要提取一個協(xié)作者。當某些內(nèi)部函數(shù)僅使用某些參數(shù)而其他不使用某些參數(shù)時,尤其如此。另外,當有代碼重復(fù)之類的時候。

我的建議是,使用重構(gòu)1中描述的方式編寫代碼,然后在需要時提取代碼。


查看完整回答
反對 回復(fù) 2021-05-26
  • 1 回答
  • 0 關(guān)注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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