我有一個Web應用程序,主要是CRUD,但也有一些業務邏輯。 我使用ORM(實體框架)與域,服務和UI(ASP.NET MVC)圖層。CRUD Web應用程序中的自動測試示例?
我希望增加自動化測試該應用程序。
是否有這表明做最佳做法的一些開源應用:
- 單元測試
- 集成測試
- UI測試
一個應用程序中。
有很多非常簡單的情況下的代碼示例,但什麼是在現實世界中使用的「非簡單」的應用程序。
我有一個Web應用程序,主要是CRUD,但也有一些業務邏輯。 我使用ORM(實體框架)與域,服務和UI(ASP.NET MVC)圖層。CRUD Web應用程序中的自動測試示例?
我希望增加自動化測試該應用程序。
是否有這表明做最佳做法的一些開源應用:
一個應用程序中。
有很多非常簡單的情況下的代碼示例,但什麼是在現實世界中使用的「非簡單」的應用程序。
我會形容我在做在這裏,但不認爲這是做的正確的方式 - 只是描述我的經驗:
我使用NUnit寫使用SQLite,讓我的數據訪問層,我所有的單元測試db來「模擬」數據庫。這樣所有的數據庫調用都是真實的,但數據庫在內存中,所以在運行測試時仍然可以獲得良好的性能。每個數據訪問方法都應該在這裏徹底測試。
我的商務功能再次測試使用NUnit,但使用起訂量來模擬所有的數據訪問操作。如果您在業務層中緩存任何內容(就像我一樣),則可以注入內存緩存類而不是真正的內存緩存類,以確保將內容正確放入緩存中。
雖然很多人喜歡這樣做,他們的控制器我更喜歡使用前端測試工具,如硒,以「記錄」我的單元測試,並將它們轉換成代碼之後。硒在測試真實世界功能方面是一個很好的工具,而不僅僅是某個特定的情況與其他情況分開。您可以使用相關的Firefox插件來記錄系統中的所有主要功能並計劃您的斷言(例如,單擊按鈕A帶我到頁面B,在那裏我可以看到我的「謝謝」消息)。 Selenium也是運行自動化前端單元測試的好工具。您可以將您的測試轉換爲C#代碼,並在夜間編譯期間通過您選擇的持續集成工具運行它們(我使用TeamCity並且效果很好),或者根據您的應用程序的大小,可以使用幾個Web應用程序您的硒腳本作爲輸入並以半自動化的方式運行它們。
只是爲了澄清:這是不錯的上述所有這些測試在NUnit測試和安裝一個簡單的CI工具,每天晚上運行它們(數據訪問,業務層,前端測試)。通過這種方式,您可以知道當您在辦公室中每天早上提交一些代碼時,是否有什麼事情會中斷。
很抱歉,這是不是你要找的例子,但我認爲它可以幫助你。