2009-02-24 49 views
1

我試圖就人們對單元測試和子(或外部)項目所做的事情達成共識。針對外部項目的單元測試

我希望通過一個例子來說明。我有一個項目P1依賴於另一個項目P2。 P2有它自己的單元測試和發佈週期。 P1也有自己的單元測試。問題是P2單元測試應該作爲P1的單元測試的一部分被包含/運行,還是應該在P2被釋放時運行P2單元測試?

清澈如泥。基思。

回答

4

當P1運行時,不需要運行P2的測試。如果P2的代碼沒有改變,那麼再次運行測試將不會帶來任何好處。

如果P2由於P1的測試而中斷,那麼需要更多的P2單元測試以確保您有足夠的覆蓋範圍(或者您可能遇到接口問題,這是完全不同的問題)。

1

執行get時運行它們。如果代碼是從源代碼控制中直接獲取的,那麼也請運行它們。 另請注意,您可能想要像P1一樣對P2進行一些集成測試。

+0

+1。如果你簽出/更新代碼,那麼也要進行測試。 – 2009-02-24 03:06:08

0

我在客戶端和服務器的情況有類似的經驗。即客戶端與Web服務。對這兩個組件都進行了單元測試。

P2測試基於P1是固體的假設。針對P1版本運行是個好主意。但是運行P2和P1來發現更多潛在的問題並沒有什麼壞處。

2

理論上,如果P2的單元測試是好的,那麼你就不需要運行它們。

但是,如果你確實運行了它們,那麼通過環境的差異,你可能會失敗。如果運行成本很低,爲什麼不呢?但是,如果測試的設置很複雜,你需要一個額外的數據庫或其他東西,那麼它可能不值得痛苦。

您可能需要的是使用P2來測試您使用的特定功能的行爲的代碼的集成測試。如果你使用P2,而P2以某種微妙的方式變化,那麼你怎麼知道的。如果P2有不同的釋放週期,那麼這一點尤爲重要:你不知道他們破了什麼:-)