2011-04-03 73 views
0

我一直在尋找單元測試的主題,老實說,我從來沒有在實時應用程序中看到它。單元測試的要點

我對這個問題有點模糊...... 一個簡單的例子是,如果我用數據填充列表框,我會通過調試知道如果數據正在填充,如果它不是很容易找出原因。此外,如果它不工作,我不可能將其投入生產,爲什麼我需要做單元測試?我沒有看到它的重點。

回答

6

如果您正在使用的網站的一個完全不同的領域,但由於你的代碼構建的方式,你所做的更改打破了填充數據的列表框的代碼?需要多長時間才能發現?更糟糕的是,如果是誰做出了這樣的改變,那麼其他人呢?有人不知道列表框填充代碼如何工作?甚至有人不知道代碼來填充列表框?

單元測試爲您提供了一套測試,可以確保您在程序中已經被證明可以正常工作的區域不會出現退步並引入錯誤,因爲您在每次更改和重構後都運行單元測試。單元測試可讓您無需恐懼地編程

此外,通過將您的代碼設計爲可測試,您必須創建一個鬆散耦合的架構,並遵循大量最佳實踐,例如,依賴注入。

3

的一點是,通過使用單元測試你確定每類的如預期運行。

什麼是該值,除了知道它的工作原理在一定條件下?

當你重構你的代碼,更改設計,返工(據說)無關的代碼,如果你的測試仍然正常運行,你知道你有沒有違反任何功能。

單元測試是既要確保該代碼編寫符合您的期望,它的任何變化仍符合他們。

+0

我認爲@Oded總結得非常好:「關鍵是通過使用單元測試你可以確定每個類都按照預期工作。我會在單元測試中補充說明,即使系統的其他部分發生變化,並且其他人來來去去,我們也會確保您的班級按照預期工作*今天,明天,即將開始的一個月。 – 2011-04-04 12:38:21

0

使用測試有許多優點和缺點。莫名其妙地看Art Of Unit Testing,這本書大大涵蓋了單元測試的主題。此外,你可以找出爲什麼你應該做單元測試。

在您的例子,假設您設置了約15網頁,檢查列表框,組合框和其他數據的填充。您需要使用調試來測試它,瀏覽器重新加載,鼠標點擊,斷點命中和運行多少?許多。但通過單元測試,核心規則之一就是測試應該簡單地通過單擊來運行。如果你設計的單元測試正確,你可以測試成千上萬的代碼與單擊

0

單元測試會給你一個機會來測試你的邏輯,而無需擊中sql服務器和解僱Cassini或IIS Express。 (當然,您需要首先在您的主項目上實施依賴項注入,並在您的測試應用程序中模擬它們)

想想你已經寫了數百種測試方法。你會批量運行所有的測試方法。這可能需要幾分鐘時間,具體取決於您的數據結構。如果您在項目中實施依賴注入並在測試中嘲笑它們,那麼購買它需要相當長的時間。

這裏是你能找到的依賴注入的好文章來源:這是我的原因,使用單元測試的http://haacked.com/archive/2007/12/07/tdd-and-dependency-injection-with-asp.net-mvc.aspx

。如果你的項目真的夠大,我認爲你也應該考慮Test-driven development (TDD)