亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在討論單元測試時,“DAMP not DRY”是什么意思?

在討論單元測試時,“DAMP not DRY”是什么意思?

阿晨1998 2019-07-23 16:22:19
在討論單元測試時,“DAMP not DRY”是什么意思?我聽說有人說單元測試(例如nUnit,jUnit,xUnit)應該是DAMP未干(例如,單元測試應該包含“潮濕代碼”而不是“干代碼”)他們在說什么?
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

這是一種平衡,而不是矛盾

DAMP和DRY并不矛盾,而是它們平衡了代碼可維護性的兩個不同方面。可維護的代碼(易于更改的代碼)是此處的最終目標。

DAMP(描述性和有意義的短語)促進了代碼的可讀性。

要維護代碼,首先需要了解代碼。要理解它,你必須閱讀它??紤]一下您花多少時間閱讀代碼。這是很多。 DAMP通過減少讀取和理解代碼所需的時間來提高可維護性。

DRY(不要重復自己)促進代碼的正交性。

刪除重復可確保系統中的每個概念在代碼中都具有單個權威表示。對單個業務概念的更改會導致對代碼的單個更改。DRY通過將變更(風險)僅隔離到必須更改的系統部分來提高可維護性。

那么,為什么復制在測試中更容易接受?

測試通常包含固有的重復,因為它們一遍又一遍地測試相同的東西,只是輸入值或設置代碼略有不同。但是,與生產代碼不同,此復制通常僅與單個測試夾具/文件中的方案隔離。因此,重復是最小和明顯的,這意味著它比其他類型的重復對項目造成的風險更小。

此外,刪除這種重復會降低測試的可讀性。之前在每個測試中重復的細節現在隱藏在一些新的方法或類中。為了全面了解測試結果,您現在必須將所有這些部件重新組合在一起。

因此,由于測試代碼重復通常風險較小,并且提高了可讀性,因此很容易看出它被認為是可接受的。

作為一個原則,在生產代碼中支持DRY,在測試代碼中支持DAMP。雖然兩者同樣重要,但只要有一點點智慧,你就可以為自己提供平衡。


查看完整回答
反對 回復 2019-07-23
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

DAMP - 描述性和有意義的短語。

“DAMP not DRY”重視代碼重用的可讀性。在測試用例中DAMP不干的想法是測試應該易于理解,即使這意味著測試用例有時會重復代碼。

另請參閱單元測試中是否可以容忍重復代碼?關于這一觀點的優點的一些討論。

它可能是由Jay Fields創建的,與Domain Specific Languages相關。


查看完整回答
反對 回復 2019-07-23
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

“干”是“不要重復自己”

這個術語用于告訴人們編寫可重用的代碼,這樣您就不會一遍又一遍地編寫類似的代碼。

“DAMP”是“描述性和有意義的短語”。

這個術語旨在告訴您編寫代碼,這些代碼可以讓正在查看它的人輕松理解。如果您遵循這一原則,您將擁有長而描述性的變量和函數名稱等。


查看完整回答
反對 回復 2019-07-23
  • 3 回答
  • 0 關注
  • 855 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號