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

    }
}
时间: 2024-11-07 14:30:07

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

VS单元测试中Assert类的用法

首先说介绍一下,Assert类所在的命名空间为Microsoft.VisualStudio.TestTools.UnitTesting 在工程文件中只要引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll就可以使用了, 在这里我举例说明Assert里面的一些主要的静态成员. 1.             AreEqual:方法被重载了N多次,主要功能是判断两个值是否相等:如果两个值不相等,则测试失败. 2.            

在VS2010单元测试中,Assert断言主要有那些功能?如何去编写代码测试?

单元测试的基本方法是调用被测代码的函数,输入函数的参数值,获取返回结果,然后与预期测试结果进行比较,如果相等则认为测试通过,否则认为测试不通过. 1.Assert类的使用 Assert.Inconclusive() 表示一个未验证的测试: Assert.AreEqual() 测试指定的值是否相等,如果相等,则测试通过: AreSame() 用于验证指定的两个对象变量是指向相同的对象,否则认为是错误 AreNotSame() 用于验证指定的两个对象变量是指向不同的对象,否则认为是错误 Assert

junit4 assert类中的assert方法总结

junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean condition);判断一个条件是true还是false.感觉这个最好用了,不用记下来那么多的方法名.2.fail([String message,]);失败,可以有消息,也可以没有消息.3.assertEquals([String message,]Object expected,Object actu

单元测试Assert类

Assert类主要的静态成员 1. AreEqual:方法被重载了N多次,主要功能是判断两个值是否相等:如果两个值不相等,则测试失败. 2. AreNotEqual:方法被重载了N多次,主要功能是判断两个值是否不相等:如果两个值相等,则测试失败. 3. AreNotSame:引用的对象是否不相同:如果两个输入内容引用相同的对象,则测试失败. 4. AreSame:引用的对象是否相同:如果两个输入内容引用不相同的对象,则测试失败 5. Fail:断言失败. 6. Inconclusive:表示无法

【Win10】单元测试中捕获异步方法的指定异常

温馨提醒:本文需要知道什么是单元测试才能阅读. 在之前 WPF.ASP.NET 中,单元测试要捕捉指定异常,我们是通过 ExpectedExceptionAttribute 来实现的.如下图: 但是,在 UWP 的单元测试项目中,是没有 ExpectedExceptionAttribute 的(没想到不同平台,M$ 连单元测试的 API 都改-_-|||).那难道只能写个 try-catch,然后检测 Exception 类型是否符合吗?这样写起来未免有些繁琐了.最终,我在另一个命名空间发现了另

使用 Assert 类

使用 UnitTestingFramework 命名空间的 Assert 类可对特定功能进行验证. 单元测试方法执行开发代码中的方法代码,但只有包含 Assert 语句时才能报告代码正确性方面的内容. Assert 类型 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间提供若干类型的 Assert 类: Assert 在测试方法中,可以调用任意数量的 Assert 类方法,如 Assert.AreEqual(). Assert 类有很多方法可供选

在单元测试中使用 Microsoft.VisualStudio.TestTools.UnitTesting 成员

单元测试框架支持在 Visual Studio 中进行单元测试. 对单元测试进行编码时,请使用 Microsoft.VisualStudio.TestPlatform.UnitTestFramework 命名空间中的类和成员. 当您从头开始编写了单元测试或要改进由测试的代码生成的单元测试时,您便可以使用这些类和成员. 元素组 为了帮助提供对单元测试框架的更为清晰的概述,本节将 UnitTesting 命名空间的元素分为相关的功能组. 说明 使用特性元素(其名称以字符串 Attribute 结尾)

使用Ninject+Moq在单元测试中抽象数据访问层

一.测试方法的业务逻辑时,通常都需要从数据库读取测试数据,但是每次初始化数据库数据都很麻烦,也会影响到其它业务对数据的访问,怎样抽象数据访问层呢?就是用Moq去模拟数据访问的逻辑 二.步骤如下 2.1 定义数据访问接口和实现 public interface IDBAccess { List<string> GetList(string request); } public class DBAccessImp : IDBAccess { public List<string> Ge

源码分析六(org.springframework.util包之Assert类)

一:抽象类Assert 抽象类不能够实例化对象,但是可以被继承,Assert类是功能类,所以方法都是static修饰 所以可以直接  类名.方法 调用. public abstract class Assert 构造方法: 抽象类中的构造方法的意义,其实不是很大,因为它不能实例化对象,所以不会调用,但是 如果有类继承Assert类,那么就会在子类中调用父类的构造方法,如果父类中构造方法时自定义 的有参构造,那么在子类构造方法中就要显示的调用,如果是无参构造,那么不用再子类中显示的 调用,默认就会