2009-06-26 71 views
5

我有一個現有的asp.net webforms應用程序,我想添加一些單元測試,但不確定如何去做。將單元測試添加到現有的asp.net web窗體應用程序

該應用程序是數據庫驅動的功能,我想你可以比較高級論壇。邏輯,數據訪問和表示大部分是分開的。

我應該測試哪些方法?

如何處理數據庫和測試數據?

是否有任何工具可以幫助解決這個問題?

回答

5

您需要決定的第一件事是:您對添加單元測試的動機是什麼?

單元測試有很多很好的理由(我自己嚴格練習TDD),但知道哪一個是您的案例的主要驅動力應該可以幫助您決定首先編寫哪些測試。

在大多數情況下,您應該專注於爲您的應用程序的領域編寫單元測試,這些測試過去一直是您最痛苦的部分。很多經驗表明,當軟件最初是在沒有單元測試的情況下編寫的時候,以後很難對單元測試進行改進。 Working Effectively with Legacy Code爲如何使未測試的軟件項目可測試提供了有價值的指導。

1

我很可能會測試你的web窗體調用的支持方法(繞過窗體驗證),這會讓你測試邏輯和數據訪問。

至於測試數據,一個單獨的測試數據庫將是最好的選擇。否則,我建議讓測試方法一旦完成就移除測試數據。

1

對於數據庫相關的單元測試,我們使用一個獨立穩定的測試數據庫來執行單元測試。

我們還在未提交的TransactionScope中包裝數據修改測試,從而爲後續測試運行回滾數據更改。我們發現這個作品非常好。

0

在工具方面,我也在尋找某種方式來測試ASP.NET webforms應用程序。對於模型部分(數據訪問等),我使用NUnit(本地sql express數據庫),並編寫代碼在所有測試運行之前創建架構(從我們簽入的.sql文件中)。

在測試之間,我使用NUnit DataRollback擴展在每次運行後回滾任何數據庫更改。

我仍然不知道測試頁面中的邏輯的好方法,類似於Rails的功能測試。從報道的角度來看,這是毀滅性的。您可以將大量邏輯推回到模型中,但是您的代碼中的代碼總是存在於重要的文件中,可能會中斷,並且您想要對單元進行測試。

相關問題