測試驅動開發(TDD)的一些思考

2021-08-11 02:39:25 字數 1216 閱讀 7445

最近在學習測試驅動開發(testdriven development,簡稱tdd)。我的感受可以用這句來形容比較貼切,「理想總是飽滿的,現實都是骨感的」。

當我說「理想總是飽滿的」時,那是因為tdd所致力於的目標所帶來的好處,確實很誘人。**松耦合、不懼**重構等等,這些都是極具價值的。

當我說「現實都是骨感的」時,那是因為想用tdd去開發專案,需要了解的東西確實比較多,不然你會發現實踐tdd很難很難!怎樣讓**具有可測試性,怎樣處理依賴,怎樣建立好的單元測試等等,這些都是要深入了解的。

以下是一些個人覺得一些很重要的知識點,僅供參考。每乙個知識點都值得我們好好深究。我們的終極目標是理想和現代都應該是飽滿的。

solid

uncle bob著名的五大原則總結得非常好。你可能覺得很好理解,但付諸實踐好像不是那麼簡單。當你真正能得心應手地付諸實踐時,你會發現solid能極大地改善我們的**。尤其是dip,對tdd來說,很重要很重要。如果不能實現依賴隔離,我們就無法把測試僅僅侷限在一小段**內,於是那些沒有隔離的依賴**也會影響單元測試!

first

這是寫單元測試時,應該謹記的五大原則。

依賴注入(dependencyinjection)

單獨拿出來說,那是因為太重要了。我們寫**的時候要特別注意依賴,我們常用依賴注入來建立接縫(seam),這樣在單元測試的時候才能模擬各種依賴。

moq / automoq

第三方庫,利用他們可以輕易實現各種依賴的模擬。

ninject、autofac等

第三方庫,這些能幫助我們自動地建立程式需要的物件樹。

mvvm

程式高層架構應該實現分層。只用讓ui層和業務邏輯層(business logic)分成,我們才能測試業務邏輯層。mvvm是乙個非常好的架構,如果你開發基於xaml的程式,mvvm一定要掌握!

prism、mvvm light toolkit等

第三方庫,這些是幫我們更快實現mvvm的輔助庫。非常好用。

我的近期目標是也能寫出好的能測試業務邏輯層的單元測試。我覺得業務邏輯層的單元測試比較難,只有很好的掌握了好多知識以後,才能寫出很好的業務邏輯層的單元測試。加油!

TDD 測試驅動開發

test driven development 測試驅動開發是敏捷開發中的一項核心實踐和技術,也是一種設計方 tdd的原理是在開發功能 之前,先編寫單元測試用例 測試 確定需要編 寫什麼產品 tdd雖是敏捷方法的核心實踐,但不只適用於xp extreme programming 同樣可以適用於其他開...

測試驅動開發TDD

測試驅動開發 testdriven development,tdd 的基本思路是通過測試推進整個的開發工作,並不只是單純的測試工作。利用這種測試方法時,若要完成某個功能,某個類,首先不是編譯正式的 而是先編寫測試 考慮其如何使用 如何測試。然後在對其進行設計 正式編碼。t dd具有很強的目的性,是在...

tdd 測試驅動開發

這是一張影響圖 當壓力越大時,所做的測試就會越少。測試越少,犯的錯就會越多,就會感到更大的壓力。這是乙個會造成情境越來越糟的迴圈。我們用事先編寫的測試來驅動開發,因為測試先於開發,所以我們在感到壓力時,就執行這些測試,它們會馬上給我們一種系統良好的感覺,而且會減少開發出錯的次數,進而減少我們的壓力,...