程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 單元測試中Assert類,單元測試Assert類

單元測試中Assert類,單元測試Assert類

編輯:C#入門知識

單元測試中Assert類,單元測試Assert類


一、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);   //不是空所以測試失敗        
         }
 
    }
}

java用於單元測試的類Assert過時了?那現在用什

斷言怎麼過時了呢,在做單元測試的時候經常會用junit4配合Assert
 

在VS2010單元測試中,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/
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved