VS2015中進行單元測試
VS2015中進行單元測試
前沿
本機環境: VS2015
建立專案使用.net版本為 .net framework 4.0
1.1建立專案
新建一個專案,專案型別不定。我在這裡選擇建立了一個控制檯應用程式
然後在當前專案下新增一個類Calculate.cs。新建並新增後的結構如下:
在Calculate.cs檔案中新增下面所示的內容:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Example
{
public class Calculate
{
///<summary>
/// 累加器 從1開始累加到傳入的值
///</summary>
///<param name="ivalue">傳入的值</param>
///<returns>累加的總值</returns>
public static int GetSum(int ivalue)
{
int sum = 0;
for (int i = 1; i <= ivalue; i++)
{
sum += i;
}
return
}
}
}
1.2建立與之對應的單元測試
選擇當前的解決方案,然後右鍵新增新的專案,選擇測試中的單元測試專案。名稱的命名方式為Test_專案名。
我們把預設新增的UnitTest1.cs改名為:Test_Calculate.cs(和我們要測試的類名稱對應)。這時我們需要新增Example的引用這樣才可以對該專案進行測試。
右鍵Test_Example中的引用,點選新增引用,選到專案中的Example然後點選確定即可。這樣我們修改Test_Calculate.cs中的內容如下:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Example;
namespace Test_Example
{
[TestClass]
public class Test_Calculate
{
[TestMethod]
public void TesGetSum()
{
Assert.IsTrue(Calculate.GetSum(10) == 55);
}
}
}
然後通過測試->執行->所有測試來檢視測試結果,結果如下:
因為1到10的累積和剛好等於55,所以測試時正確的,如果我們把55換成60,再看下效果:
這樣我們就可以很清楚的看到Assert.IsTrue這裡是存在問題的。
1.3常用的Assert用法
Assert.Inconclusive() 表示一個未驗證的測試;
Assert.AreEqual() 測試指定的值是否相等,如果相等,則測試通過;
AreSame() 用於驗證指定的兩個物件變數是指向相同的物件,否則認為是錯誤
AreNotSame() 用於驗證指定的兩個物件變數是指向不同的物件,否則認為是錯誤
Assert.IsTrue() 測試指定的條件是否為True,如果為True,則測試通過;
Assert.IsFalse() 測試指定的條件是否為False,如果為False,則測試通過;
Assert.IsNull() 測試指定的物件是否為空引用,如果為空,則測試通過;
Assert.IsNotNull() 測試指定的物件是否為非空,如果不為空,則測試通過;
小提示
如果你本機安裝了VS2010和一個更高版本的VS,這時你用VS2010編寫單元測試並執行時就會發現所有的單元測試都是處於掛起的狀態。網上很多人遇到了這種情況,所以個人建議使用更高版本的VS。