概述
測試驅動開發 (Test Driven Development, TDD),通常也稱作測試驅動設計,是一種開發方法。在該方法中,開發人員首先編寫單元測試,然後編寫實際系統代碼來確保可以順利通過單元測試。可以將單元測試看作是系統行為的小型規範;首先編寫單元測試可以讓開發人員僅編寫足夠通過測試的代碼,有助於確保系統的緊湊、輕量,並能明確專註於滿足已確定的需求。
TDD 的步調是“紅色、綠色和重構。”紅色表示失敗測試的可視顯示——最初編寫的測試並不會通過,因為您還沒有為它編寫任何代碼。綠色表示在系統中編寫足夠的代碼以確保單元測試能順利通過——測試回合器的使用者介面現在將使用綠色表徵圖表示測試順利通過。重構表示對代碼執行重構來提高它的緊湊性、簡潔性和靈活性。在 TDD 開發人員的工作中,此周期將不斷重複。
注意:本實驗的目的並不是指導您如何使用 TDD;而是重點展示 Visual Studio 2010 對 TDD 的支援。如果您對 TDD 方法及其優勢感興趣,建議首先閱讀以下圖書,以之作為起點:
Test Driven Development in Microsoft .NET 作者:James Newkirk 和 Alexei Voronstov,ISBN 0735619484
Pragmatic Unit Testing in C# with NUnit, 2nd Edition 作者:Andy Hunt、Dave Thomas 和 Matt Hargett,ISBN 0977616673
TDD 的關鍵是開發人員的步調。要實現高效的開發節奏,開發人員需要擁有正確的思想,同時還要藉助正確的工具來盡量提高工作速度和減少衝突。
Visual Studio 2010 引入了一些增強功能,有助於減少開發阻礙並支援開發人員專註於以下任務:編寫高品質的代碼。在接下來的練習中,我們將重點展示一些新特性,它們可以協助開發人員改善其開發步調。VS10 可以協助開發人員減少常用任務的敲鍵數量,加速解決方案導航,同時使用測試架構來代替 MSTest。
為了示範其新特性,我們將採用“測試優先”的方式實現一個棧,展示如何利用測試來驅動 SimpleStack 類的設計和實現。
注意:在電腦科學領域,棧是一種抽象的資料類型和資料結構,採用後進先出 (LIFO) 的原則。
如果您不熟悉棧這個資料結構概念,或者想回顧一些相關知識,請閱讀更加全面的 Wikipedia 文章,更加深入地瞭解此概念。
目標
在本次動手實驗中,您將學習如何:
使用新的智能標記操作來減少擊鍵次數,讓 IDE 自動產生小型的程式碼片段。
使用 Quick Search 迅速導航程式碼程式庫。
系統要求
您必須擁有以下內容才能完成本實驗:
Microsoft Visual Studio 2010 Beta 2
.Net Framework 4.0