2015-04-21 24 views

回答

2

它不應該,通過合同設計不打算取代單元測試或任何類型的測試。先決條件和後置條件用於執行合同,但該合同的最終客戶需要確保合同仍然存在。所以你需要保持所有值的單元測試,以確保一切都是它應該的。

+0

你說我們應該只使用合同,如果我們正在實施一個API,將由另一個人或團隊bu用戶? – miguelbgouveia

+3

不只*,如果你喜歡DbC,那麼就使用它(如果你願意,可以隨時使用),它是一個很好的練習方法。但它不能代替任何類型的測試,但它可以幫助測試編碼過程,因爲您可以事先知道它的期望。 – lpaneque

+1

通過遵循DbC,可以(更)_possible_編寫代碼,以使代碼的調用者「陷入成功之坑」 - 換句話說,您可以儘可能地使調用者很難錯誤地調用庫方法。話雖如此,這不是一顆銀彈 - 它只是另一種工具。我曾經使用合同編寫過一個模塊,但是我錯誤地輸入了合同前提條件。當我的單元測試失敗時,男孩感到驚訝!我不需要測試代碼合同是否正常工作,但我確實需要測試我的手指輸入了正確的合同! – fourpastmidnight