文档章节

单元测试中Assert类的用法

xiao刀
 xiao刀
发布于 2013/04/23 08:54
字数 758
阅读 1507
收藏 0
C#

首先说介绍一下,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:测试指定的对象是否为非空具个例子来说明上面所写的。(先创一个测试工程)
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;
             }
         }
        #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,"不是空所以测试失败");           
         }

     }

}

© 著作权归作者所有

xiao刀
粉丝 2
博文 44
码字总数 9649
作品 0
高级程序员
私信 提问
vs2015单元测试总结——3种方法可用

VS中有个非常有用的功能,单元测试。通过单元测试,开发人员和测试人员可以快速的检查C#,.net和c++项目中各个类的方法中是否有逻辑错误。单元测试仅仅需要创建一次,那么在每次更改源代码时...

Andrewniu
03/14
0
0
在.NET开发中的单元测试工具之(2)——xUnit.Net

在上一篇《在.NET开发中的单元测试工具之(1)——NUnit》中讲述了如何使用NUnit在.NET开发中进行单元测试以及NUnit的一些缺点,今天将讲述如何使用xUnit.Net来进行单元测试。 xUnit.Net介绍 ...

周金桥
2013/04/06
0
0
Python 的单元测试之 mock

Overview mock 是一个用于单元测试的 Python 库,它使用 mock 模拟系统中如 class, method 等部分,并且断言它们是如何被调用的。在编写单元测试时,mock 非常适合模拟数据库,web 服务器等依...

koala bear
2015/06/02
0
0
python学习——基础(八)

python 内置了一套try...except...finally...的错误处理机制; try: except ZeroDivisionError, e: finally: 结果:tryexcept: integer division or modulo by zerofinally finally语句块是一......

随性_
2015/10/26
44
0
.net core 单元测试之 JustMock第一篇

前面介绍了单元测试的框架NUnit,它可以很好的帮助我们建立测试,检验我们的代码是否正确。但这还不够,有时候我们的业务比较重,会依赖其它的类。基于隔离测试的原则,我们不希望依赖的其它...

鸡米粥
08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7命令行和图形界面的相互切换

最近安装了centos7,发现在命令行和图形界面的相互切换命令上,与centos以往版本有很大不同。 1,centos7默认安装后,跟其他版本一样,启动默认进入图形界面; 2,在图形化桌面,右击鼠标,选...

无名氏的程序员
3分钟前
0
0
对称的二叉树

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 boolean isSymmetrical(TreeNode pRoot) { if (pRoot == null) ...

Garphy
12分钟前
1
0
快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么

一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在...

Bb进阶
15分钟前
2
0
golang 数据库与JSON解析一起 用空格分割

type Stocks struct { Id string `xorm:"varchar(64) pk" json:"id"` Name string `xorm:"varchar(64)" json:"name"` StockNum str......

zdglf
18分钟前
2
0
恨天诀——第一集 第五章

天似穹庐,笼盖四野。 静静矗立的天柱峰,像一把长剑,直插云霄。山南显得格外阴冷,萧瑟。 “龙儿,何为天道?”一长一少两人默默并排而立,长者问道。 良久,少年回答:“父亲,恕孩儿驽钝...

Kerwin_zZ
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部