单元测试中Assert类

转自:https://www.cnblogs.com/rr163/p/4063244.html

 

一、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); //不是空所以测试失败  }   } }

转自:https://www.cnblogs.com/rr163/p/4063244.html

 

一、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); //不是空所以测试失败  }   } }

猜你喜欢

转载自www.cnblogs.com/yangf428/p/11088494.html