2011-06-01 41 views
0

我開發的ASP.NET應用程序(在ASP.NET 2.0上)通常已由數據庫支持;服務器上絕大多數.NET代碼會以DataSetSqlDataReader的形式加載數據,並將其用於數據綁定,如DataGrid。有意義的邏輯或者依賴於數據庫或者依賴於用戶界面。如何在數據庫支持的ASP.NET應用程序中執行單元測試(也是UI測試)

在這種情況下,我應該如何實現由持續集成服務器(可能是CruiseControl.NET)運行的單元測試?我應該爲它設置一個測試數據庫連接來測試CRUD操作和更復雜的SPROC,還是應該在.NET代碼中包含更多邏輯,而不是SPROC中包含更多邏輯?當數據庫中有應用程序期望找到的結構時(例如我爲CMS編寫的某個用戶表),這變得更加複雜。

此外,有什麼最好的方法來做單元測試的用戶界面?我找到了NUnitASP,現在放棄了,但提到了SeleniumWatir

回答

1

看看MVP模式(Model View Presenter)。這應該允許您隔離系統的行爲,並且單元對它進行正確測試。

此外,考慮切換到MVC(我會與Fubu通過ASP.NET MVC)。這將允許您測試控制器,並擁有更多類似軌道的體驗。

爲了實現自動化,我使用WatiN(比如watir,但是.NET)。最重要的是,我使用StoryTeller(谷歌的「StoryTeller Jeremy Miller」)以更具人性化的可讀方式展示正在發生的事情,並提供QA使用的模板。

我強烈建議不要使用sprocs中的任何業務邏輯。遠離他們。查看存儲庫模式以抽象獲取和設置數據。

希望這能讓你開始。

+0

如果業務邏輯做了很多數據過濾,該怎麼辦? .NET代碼在查詢中總是比SQL慢。 – 2011-06-01 01:13:28

+0

然後你正在看rhino etl。我不會跟ssis一樣,因爲它是不可維護的。 – 2011-06-01 02:19:28