標籤:blog http io ar os 使用 sp strong 資料
原文:使用Visual Studio進行單元測試
一、使用Visual Studio進行單元測試的幾個建議
1.先寫單元測試(依我愚見,應該是介面先行,如果有的話) -> 測試失敗 -> 以最小的改動(即編寫實際代碼)使測試通過(而在VS2012中已經不能通過現有項目直接產生測試專案了,我覺得這個功能還是應該保留,微軟總是這副德行,強迫使用者適應他們的產品,但是又不得不適應);
2.不因單元測試而追加功能(代碼),即邏輯不受單元測試影響;
3.改變了代碼的邏輯(增刪改),應及時運行單元測試;
4.在測試方法聲明Attribute —— TestCategory("分類或特徵名");
5.在單元測試項目添加Fakes程式集分離外部依賴(如資料庫訪問,擷取配置資訊等);
6.初始化單元測試類中的成員等資訊,可添加方法並聲明Attribute[TestInitialize](方法需為public);
二、下面我們以VS2012為例,來看一下如何在Visual Studio中進行單元測試
1.首先,右鍵點擊解決方案(Solution)彈出右鍵菜單(Context)
選擇添加(Add) - 新項目(New Project), 在給出的模版中,選擇 Visual C# - Test -Unit Test Project 。
2.得到模版
3.在測試方法中(此處為預設的TestMethod1,一般修改為 需要測試的方法名+Test )添加自己需要測試的代碼
例如添加類XmlSerializationTest,代碼如下:
C# 代碼 複製
[TestClass] public class XmlSerializationTest { private XmlSerialization serialization; [TestInitialize] public void InitTest() { this.serialization = new XmlSerialization(@"F:\\usermodel.seri"); } [TestMethod] public void TestWriteXml() { UserModel user = new UserModel(); bool flag = serialization.WriteXml<UserModel>(user); Assert.IsTrue(flag); Assert.IsFalse(serialization.WriteXml<UserModel>(null)); } [TestMethod] public void TestReadXml() { UserModel user = new UserModel(); user.LoginName = "aa"; serialization.WriteXml<UserModel>(user); UserModel model = serialization.ReadXml<UserModel>(); Assert.IsNotNull(model); Assert.AreEqual(user.LoginName, model.LoginName); //路徑不存在,應返回null UserModel modelnull = serialization.ReadXml<UserModel>(@"F:\\notexists.seri"); Assert.IsNull(modelnull); } }
4。測試代碼寫好後, 即可點擊上方菜單Test-Run- AllTests等,來進行測試
測試完畢後。下方會產生結果清單。紅色為未通過的TestCase。若想對其進行DEBUG,可右擊紅色的TestCase,選擇Debug selected Tests。修改後,也可右擊想要重新測試的TestCase,選擇Run Selected Tests.
使用Visual Studio進行單元測試