如何用asp.net 4.0 Web Forms做TDD/BDD?我有一個規模非常大的現有網站,我們沒有對數據庫中每次更改進行任何測試,我們必須猜測會發生什麼情況?我想介紹單元測試請給我指點?如何用asp.net 4.0 Web Forms做TDD/BDD?
2
A
回答
3
很大程度上取決於您現有代碼庫的結構。
將單元測試,特別是TDD改造爲傳統項目可能需要很多工作。通常,您會發現駐留在網頁文件後面的代碼中的數據庫和業務邏輯。
使用接口類型是你的朋友,因爲Visual Studio可以爲你自動生成接口類。 (將光標放在類名上,右鍵單擊,選擇重構和提取界面)
我會努力將您的數據庫代碼分離到它自己的類庫項目中。然後,您可以指定業務邏輯等可以訪問數據庫的公共接口。所有其他代碼應將數據庫存儲庫視爲黑盒子。
創建一個工廠以使您的存儲庫(基於該接口),讓它創建測試類型和活動類型。實時類型將鏈接到您當前的數據庫代碼中。測試類型將只返回硬編碼值。您可以使用實時數據庫編寫測試,然後可以以TDD方式編寫「測試」數據庫的測試。
一旦它們都匹配(所有測試都通過),則通過編寫在「測試」數據庫上運行的測試,然後在實時數據庫上添加測試來添加任何新的數據庫功能。
記住所有的代碼應該只使用接口到數據庫而不是實例化的實時數據庫類。一旦你掌握了這個過程,你可以在數據庫代碼中深入研究(如果你願意的話),但是我會說在分離和測試業務和UI邏輯時遵循相同的過程對於傳統項目。
您可能會發現,一種實用的方法是僅在我添加新代碼時描述的過程中分離出功能。換句話說,在添加新功能之前,根據描述編寫代碼來描述它通過(實時和測試版本),然後使用測試是否通過或未能指導編碼來更改或添加新功能的測試。
如果覆蓋了所有您希望測試失敗的基準,請測試通過並可能測試異常情況。
祝你好運。對於那些膽小的人來說這不是一份工作(過去不得不做很多次)。
相關問題
- 1. ASP.NET Web Forms + jQuery
- 2. ASP.NET Web Forms - Global Procedures
- 3. Asp.net 4.0 Forms身份驗證和FriendlyUrls
- 4. Asp.net 4.0 Web服務壓縮
- 5. 如何在ASP.NET Web Forms網站中使用SubSonic 3.0.4?
- 6. 如何在asp.net 4.0
- 7. ASP.Net 4.0 Web場緩存
- 8. Asp.Net 4.0 Web窗體-Webpages.Deployment Assembly
- 9. 如何使用asp.net 4.0
- 10. 如何使用PowerShell Web管理模塊爲IIS註冊ASP.NET 4.0?
- 11. ASP.NET 4.0 Web Forms Url重寫(屏蔽URL地址鏈接)的最佳實踐
- 12. 如何禁用/從ASP.NET 4.0 Web應用程序中刪除WebPageHttpModule?
- 13. 如何在Umbraco 4.7和.NET 4.0中使用ASP.NET Web API
- 14. MVVMCross 4.0 Xamarin Forms Page not found
- 15. .NET 4.0上的ASP.NET Web應用程序
- 16. 在業務邏輯驗證 - ASP.NET Web Forms
- 17. 元素內的ASP.NET Web Forms元素
- 18. 在ASP.NET Web Forms 4.5中綁定JQuery
- 19. ASP.NET Web Forms演示架構和模式
- 20. 如何進行單元測試ASP.NET Web Forms
- 21. ASP.net Drop-In-Forms
- 22. ASP.NET AJAX 4.0是ASP.NET 4.0的一部分嗎?
- 23. 在Web Forms項目下託管Web API
- 24. 如何在身份驗證(Web Forms asp.net)中使用UserId而不是用戶名?
- 25. 如何將ASP.NET MVC站點作爲單元可測試的ASP.NET Web Forms站點?
- 26. asp.net 4.0 web.config繼承
- 27. 如何加密ASP.NET 4.0 Web.Config?
- 28. 在ASP.NET Web Forms中使用$ .ajax進行ajax調用
- 29. 如何使用asp.net框架4.0進行單點登錄
- 30. asp.net forms ScriptManager __doPostback