VS单元测试中Assert类的用法

首先说介绍一下,Assert类所在的命名空间为
Microsoft.VisualStudio.TestTools.UnitTesting 在工程文件中只要引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll就可以使用了,

在这里我举例说明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:测试指定的对象是否为非空

/**//// <summary>
    ///这是 TempDll.TempDll 的测试类,旨在
    ///包含所有 TempDll.TempDll 单元测试
    ///</summary>
    [TestClass()]
    public class TempDllTest
    ...{


        private TestContext testContextInstance;

        /**//// <summary>
        ///获取或设置测试上下文,上下文提供
        ///有关当前测试运行及其功能的信息。
        ///</summary>
        public TestContext TestContext
        ...{
            get
            ...{
                return testContextInstance;
            }
            set
            ...{
                testContextInstance  = value;
            }
        }
        附加测试属性#region 附加测试属性
        // 
        //编写测试时,可使用以下附加属性:
        //
        //使用 ClassInitialize 在运行类中的第一个测试前先运行代码
        //
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //使用 ClassCleanup 在运行完类中的所有测试后再运行代码
        //
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //使用 TestInitialize 在运行每个测试前先运行代码
        //
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //使用 TestCleanup 在运行完每个测试后运行代码
        //
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


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

    }

} {
    /**//// <summary>
    ///这是 TempDll.TempDll 的测试类,旨在
    ///包含所有 TempDll.TempDll 单元测试
    ///</summary>
    [TestClass()]
    public class TempDllTest
    ...{


        private TestContext testContextInstance;

        /**//// <summary>
        ///获取或设置测试上下文,上下文提供
        ///有关当前测试运行及其功能的信息。
        ///</summary>
        public TestContext TestContext
        ...{
            get
            ...{
                return testContextInstance;
            }
            set
            ...{
                testContextInstance  = value;
            }
        }
        附加测试属性#region 附加测试属性
        // 
        //编写测试时,可使用以下附加属性:
        //
        //使用 ClassInitialize 在运行类中的第一个测试前先运行代码
        //
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //使用 ClassCleanup 在运行完类中的所有测试后再运行代码
        //
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //使用 TestInitialize 在运行每个测试前先运行代码
        //
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //使用 TestCleanup 在运行完每个测试后运行代码
        //
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


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

    }

}

时间: 2024-10-14 00:22:23

VS单元测试中Assert类的用法的相关文章

单元测试中Assert类

一.Assert类的使用 1.Assert类所在的命名空间为Microsoft.VisualStudio.TestTools.UnitTesting 在工程文件中只要引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll就可以使用了. 2.使用Assert类可以对特定功能进行验证,单元测试方法执行开发代码中的方法代码,但只有包含Assert语句时才能报告代码行为方面的内容. 3.Assert在测试方法中,可以调用任意数量的Asser

android中Handle类的用法

android中Handle类的用法 当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无响应,如果时间过长,程序还会挂掉.Handler就是把这些功能放到一个单独的线程里执行,与Activity互不影响. 当用户点击一个按钮时如果执行的是一个常耗时操作的话,处理不好会导致系统假死,用户体验很差,而Android则更进一步,如果任意一个Acitivity没有响应5秒钟以上就会被强制关闭,

三、android中Handle类的用法

当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无响应,如果时间过长,程序还会挂掉.Handler就是把这些功能放到一个单独的线程里执行,与Activity互不影响. 当用户点击一个按钮时如果执行的是一个常耗时操作的话,处理不好会导致系统假死,用户体验很差,而Android则更进一步,如果任意一个Acitivity没有响应5秒钟以上就会被强制关闭,因此我们需要另外起动一个线程来处理长耗

C#中timer类的用法

C#中timer类的用法 关于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类里   3.定义在System.Timers.Timer类里 System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API  SetTimer实现的.它的主要缺点是计时不精确,而且必须

Java中Class类及用法

Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI.这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类.Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建. 说白了就是: Class类也是类的一种,只是名字和class关键字高度相似.Java是大小写敏感的语言. Class类的对象内容是你创建的类的类型信息,比如你创建

标准C++中string类的用法总结

相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的.也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法.其实,可能很多人很可能会忽略掉标准C++中string类的使用.标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个

Android中Calendar类的用法总结

Calendar是Android开发中需要获取时间时必不可少的一个工具类,通过这个类可以获得的时间信息还是很丰富的,下面做一个总结,以后使用的时候就不用总是去翻书或者查资料了. 在获取时间之前要先获得Calendar这个类的实例: [java] view plain copy private Calendar c = Calendar.getInstance(); 然后就可以用这个变量来获取时间了. 获得当前的年份 [java] view plain copy Log.i("MainActivi

Java中ArrayList类的用法

1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.Remove

java中scanner类的用法

在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分.于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法.这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析.借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器.