一、Assert類的使用
1、Assert類所在的命名空間為Microsoft.VisualStudio.TestTools.UnitTesting 在工程文件中只要引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll就可以使用了。
2、使用Assert類可以對特定功能進行驗證,單元測試方法執行開發代碼中的方法代碼,但只有包含Assert語句時才能報告代碼行為方面的內容。
3、Assert在測試方法中,可以調用任意數量的Assert類方法,如Assert.AreEqual()方法。Assert類有很多方法可供選擇,其中許多方法具有多個重載。
4、使用CollectionAssert類可比較對象集合,也可以驗證一個或多個集合的狀態。
5、使用StringAssert類可以對字符串進行比較。此類包含各種有用的方法。如:StringAssert.Contains、StringAssert.Matches和StringAssert.StartWith。
6、AssertFailedException只要測試失敗,就會引發AssertFailedException異常。如果測試超時,引發意外的異常,或包含生成了Failed結果的Assert語句,則測試失敗。
7、AssertInconclusiveException只要測試生成的結果是Inconclusive,就會引發AssertInconclusiveException。通常,向仍在處理的測試添加Assert.Inconclusive來指明該測試尚未准備好,不能運行。
二、Assert類主要的靜態成員
1、 AreEqual:方法被重載了N多次,主要功能是判斷兩個值是否相等;如果兩個值不相等,則測試失敗。 2、 AreNotEqual:方法被重載了N多次,主要功能是判斷兩個值是否不相等;如果兩個值相等,則測試失敗。 3、 AreNotSame:引用的對象是否不相同;如果兩個輸入內容引用相同的對象,則測試失敗. 4、 AreSame:引用的對象是否相同;如果兩個輸入內容引用不相同的對象,則測試失敗 5、 Fail:斷言失敗。 6、 Inconclusive:表示無法證明為 true 或 false 的測試結果 7、 IsFalse:指定的條件是否為 false;如果該條件為 true,則測試失敗。 8、 IsTrue:指定的條件是否為 true;如果該條件為 false,則測試失敗 9、 IsInstanceofType:測試指定的對象是否為所需類型的實例;如果所需的實例不在該對象的繼承層次結構中,則測試失 10、 IsNotInstanceofType: 測試指定的對象是否為所需類型的實例;如果所需的實例在該對象的繼承層次結構中,則測試失敗 11、 IsNull:測試指定的對象是否為非空 12、 IsNotNull:測試指定的對象是否為非空 三、測試實例 C# 代碼 復制
using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Text; using System.Collections.Generic; namespace Temp_Test { /// <summary> ///這是 TempDll.TempDll 的測試類,旨在 ///包含所有 TempDll.TempDll 單元測試 ///</summary> [TestClass()] public class TempDllTest { private TestContext testContextInstance; /// <summary> ///獲取或設置測試上下文,上下文提供 ///有關當前測試運行及其功能的信息。 ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } /// <summary> ///測試方法入口處 ///</summary> [TestMethod()] public void Test() { System.IO.FileInfo file = null; System.IO.FileInfo file1 = file; System.IO.DirectoryInfo dir = null; string tempTrue = "T"; string tempFalse = "F"; Assert.AreEqual(tempTrue, tempFalse);//兩個對想不相同,測試失敗 Assert.AreNotSame(file1, tempTrue);//兩個引入的對象是同一個,測試失敗" Assert.AreSame(file1, file);//兩個引入的對象是不相同的 Assert.Fail();//不管是什麼,直接宣布測試失敗 Assert.Inconclusive();//同Fail差不多,但不是失敗,只是測試不能通過 Assert.IsFalse(true);//如果是真,表示測試失敗 Assert.IsTrue(false);//如果為假,請示測試失敗 Assert.IsInstanceOfType(true,tempTrue.GetType());//類型不相同,測試失敗 Assert.IsNull(tempFalse); //不是空所以測試失敗 } } }
斷言怎麼過時了呢,在做單元測試的時候經常會用junit4配合Assert
單元測試的基本方法是調用被測代碼的函數,輸入函數的參數值,獲取返回結果,然後與預期測試結果進行比較,如果相等則認為測試通過,否則認為測試不通過。
1、Assert類的使用
Assert.Inconclusive() 表示一個未驗證的測試;
Assert.AreEqual() 測試指定的值是否相等,如果相等,則測試通過;
AreSame() 用於驗證指定的兩個對象變量是指向相同的對象,否則認為是錯誤
AreNotSame() 用於驗證指定的兩個對象變量是指向不同的對象,否則認為是錯誤
Assert.IsTrue() 測試指定的條件是否為True,如果為True,則測試通過;
Assert.IsFalse() 測試指定的條件是否為False,如果為False,則測試通過;
Assert.IsNull() 測試指定的對象是否為空引用,如果為空,則測試通過;
Assert.IsNotNull() 測試指定的對象是否為非空,如果不為空,則測試通過;
2、CollectionAssert類的使用
用於驗證對象集合是否滿足條件
StringAssert類的使用
用於比較字符串。
StringAssert.Contains
StringAssert.Matches
StringAssert.tartWith
參考資料:zxianf.blog.163.com/...57499/