2015-01-14 16 views
3

我工作的項目有多個圖層,每個圖層的對象都在後續圖層中使用。但是一些類沒有任何接口並且沒有虛擬方法。所以基本上我不能使用模擬框架來從其他圖層中挖掘這些類。當我要求開發人員爲同一個類創建一個接口時,我可以嘲笑它,他問我爲什麼要創建一個接口,如果我不打算重用它。 爲了提高代碼的可測試性,編寫接口是否是一種很好的做法?是否正在編寫接口來幫助測試良好實踐?

+0

假設你必須嘲笑一個密封的課程,那麼你會怎麼做? –

+0

是的。這就是爲什麼存儲庫經常被一個接口補充的原因,所以可以注入一個存根實現。 –

+0

@JeroenVannevel所以你的意思是說可以問開發者將接口引用測試能力作爲一個因素嗎? –

回答

2

您的代碼應該鬆散耦合,並具有良好的依賴性管理,以允許您輕鬆地編寫單元測試。如果你不能輕鬆編寫單元測試,那麼這是你的代碼不夠好的體系結構的第一個標誌,你需要重構它。所以,你的動機改變生產代碼(在你的情況下添加接口)應該是讓你的代碼更好,而不僅僅是援助測試。如果你能做到第一個 - 你會免費獲得第二個。

順便說一句,遵循TDD實踐的主要好處之一就是良好的體系結構從一開始就執行:編寫不可測試的代碼很困難,因爲在編寫代碼之前編寫測試。

所以,答案是肯定的,這是確定添加接口,但它應該爲架構的緣故來完成,不只是爲了幫助你編寫試驗架構。