2015-04-02 51 views
0

您認爲在單元測試中使用代碼合同是可取的嗎? 我不認爲這是因爲它就像創建單元測試來測試你的單元測試一樣。 因此,我不會激活代碼合同靜態檢查,也不會激活單元測試項目的運行時檢查。在單元測試中使用代碼合同

爲了澄清,我特別想知道您是否會在單元測試中編寫代碼合同代碼。

回答

1

我認爲爲單元測試啓用代碼合同是一個好主意,那麼在測試運行時可以捕獲任何合同失敗。

然而,除了測試方法使用的輔助方法之外,在測試方法本身中進行任何合同檢查通常沒有用處。

+0

通過啓用代碼合同,您的意思只是運行時檢查? – 2015-04-02 16:44:32

+0

@LucaCremonesi是的。在單元測試項目中啓用靜態檢查可能沒有多大幫助,但是如果您可以節省CPU週期,那麼爲什麼不呢:) – Keith 2015-04-02 16:56:26

0

Improved testability

•每個合同充當一個oracle,給人一種測試運行一個通過/失敗指示。

•自動測試工具,例如Pex,可以利用合約來生成更有意義的單元測試,通過篩選出不符合前提條件的無意義測試參數。

+0

我在問我是否應該將代碼合同代碼放入單元測試中。您報告的鏈接似乎沒有考慮這種情況。它只是說在你的**生產**代碼中增加代碼合同可以提高它的可測試性。因此,正如@Keith所說的那樣,在單元測試項目中激活靜態檢查器是有道理的。 – 2015-04-02 17:25:11