C# 單元測試例子二
技術標籤:VS
步驟簡略,特別處進行說明。
以VS2015為例。
1、建立一個解決方案方案,如新增一個ConsoleApplication1的解決方案。
2、在解決方案的預設專案中,新增一個Calc類
3、將Calc設定成public,然後新增一個靜態方法。
public class Calc
{
public static int ADD(int a, int b)
{
return a + b;
}
}
4、在ADD的方法上,點右鍵【建立單元測試】,在彈出的對話方塊中,選擇【測試專案名】和【輸出檔案】,其他內容選預設即可。自動建立一個方法。
5、補全方法並用斷言結尾即可。
namespace ConsoleApplication1.Tests
{
[TestClass()]
public class CalcTests
{
[TestMethod()]
public void ADDTest()
{
int a = 10, b = 15;
int c = Calc.ADD(a, b);
Assert.AreEqual(25, c);
}
}
}
6、這時,對於我們要測試的方法上方,就有VS自動新增的測試用例執行狀況的提要了。
7、以後修改了這個方法,點選執行測試用例即可。
斷言包括以下幾種,第一個引數是你的期望值(Except),第二個引數是函式返回或影響程式產生的實際值(Actual)
① Assert.AreEqual
主要是驗證函式產生的影響值或返回的值跟預期是否一致,這個方法不適合驗證返回的資料集以及集合之類的資料,主要針對字串,數字等等的單一型別,它還有個泛型過載,這個是比較好的,建議多使用,它還有第三個引數,是一個string型的message,基本上不會用到!
例子:Assert.AreEqual<string>("a", "a", "cheng xu yuan");
沒什麼要講的,情況跟上面相反,主要是驗證實際值跟期望值不相等的情況!
③ Assert.AreSame
判斷實際值跟預期值的型別是否一致!
④ Assert.AreNotSame
跟上面正好相反,測試型別不一致!
⑤ Assert.IsNotNull,Assert.IsNull,Assert.IsTrue,Assert.IsFalse
看這些方法名就知道什麼意思了!
⑥ Assert.IsInstanceOfType,Assert.IsNotInstanceOfType
判斷指定的物件是否是指定的型別!
⑦ Assert.Fail
迫使斷言失敗,不管前面的斷言是否都成功了,但測試結果是錯誤的,因為我強制斷言失敗了!