1. 程式人生 > >Visual Studio 2012使用NUnit單元測試實踐

Visual Studio 2012使用NUnit單元測試實踐

 在Visual Studio 2012中,預設使用Microsoft自帶的MS-Test測試框架。但,Visual Studio同樣允許使用第三方測試框架,比如NUnit,xUnit,MbUnit,等等。本篇體驗使用NUnit進行單元測試。
1 在Visual Studio中建立一個解決方案Solution1。檔案->新建專案->其它專案型別->Visual Studio解決方案->空白解決方案。

2在解決方案Solution1下新增一個類庫LogAn。建立空白解決方案後,在vs2012右邊的解決方案資源管理器中,可以看到剛建立的解決方案,單擊選中它,然後右鍵選擇“新增”->新建專案->Visual C# ->類庫。

3在類庫LogAn下建立類LogAnalyzer,編寫如下:

4在解決方案Solution1下新增一個"單元測試專案"MyFirstTestProject。“新增”->新建專案->Visual C# ->測試->單元測試專案。

5接下來需要安裝"NUnit Test Adapter", "NUnit Test Adapter"是介於NUnit和Visual Studio之間的一個介面卡。依次點選"工具"、"擴充套件和更新",從中搜索並安裝"NUnit Test Adapter"。

安裝完畢,需要重啟Visual Studio 2012。

6在單元測試專案下,通過NuGet安裝NUnit。

7在單元測試專案下引用"LogAn"的類庫。

8編寫一個測試類和測試方法,單元測試的命名規則有一定的約定,比如說:類名_目的_期望的結果,遵循這個命名規則:

Order_NumberOfOrders_GreaterThanZero_Success

以下是測試類和測試方法:

生成單元測試專案。

點選Visual Studio 2012左上角的"測試資源管理器",點選"執行"。

顯示未通過測試。

修改類庫中的程式碼如下:

if (!fileName.ToLower().EndsWith(".slf"))

並重新生成類庫。

再次執行單元測試專案,顯示通過。

在單元測試中,如果一個測試中遺留了一些資料、狀態或物件例項,可能會導致其它測試的失敗。而定位測試之間的依賴性也是很困難的。解決辦法是讓所有測試之間沒有任何依賴關係。NUnit為此提供了[Setup]和[TearDown]這兩個特性,旨在某個測試方法執行之前做一些初始化工作,執行之後做一些清理工作。於是,現在測試程式碼可以修改成如下: