前文中所提到的测试都是针对一个方法进行的独立测试,即使是同事测试多个方法,他们之间也没有影响。但是在实际的生产过程中,更多的情况是方法与方法之间是存在相互的逻辑关系的,所以也就有了今天要介绍的顺序测试。

顺序测试,顾名思义,就是按照预先设定的顺序来测试一系列的方法。
  1. 首先还是展示一下要进行测试的代码

        public class Mathmatics
    {
    public static int Add( int a, int b)
    {
    return a + b;
    }
    public static int Dec( int a, int b)
    {
    return a - b;
    } public static int Div( int a, int b)
    {
    return a / b;
    } public static int Mul( int a, int b)
    {
    return a * b;
    }
    }
  2. 生成各个方法对应的测试代码

            /// <summary>
    /// A test for Add
    ///</summary>
    [ TestMethod ]
    public void AddTest()
    {
    int a = ; // TODO: Initialize to an appropriate value
    int b = ; // TODO: Initialize to an appropriate value
    int expected = ; // TODO: Initialize to an appropriate value
    int actual;
    actual = Mathmatics . Add(a, b);
    Assert .AreEqual(expected, actual);
    } /// <summary>
    /// A test for Dec
    ///</summary>
    [ TestMethod ]
    public void DecTest()
    {
    int a = ; // TODO: Initialize to an appropriate value
    int b = ; // TODO: Initialize to an appropriate value
    int expected = ; // TODO: Initialize to an appropriate value
    int actual;
    actual = Mathmatics . Dec(a, b);
    Assert .AreEqual(expected, actual);
    } /// <summary>
    /// A test for Div
    ///</summary>
    [ TestMethod ()]
    public void DivTest()
    {
    int a = ; // TODO: Initialize to an appropriate value
    int b = ; // TODO: Initialize to an appropriate value
    int expected = ; // TODO: Initialize to an appropriate value
    int actual;
    actual = Mathmatics . Div(a, b);
    Assert .AreEqual(expected, actual);
    } /// <summary>
    /// A test for Mul
    ///</summary>
    [ TestMethod ()]
    public void MulTest()
    {
    int a = ; // TODO: Initialize to an appropriate value
    int b = ; // TODO: Initialize to an appropriate value
    int expected = ; // TODO: Initialize to an appropriate value
    int actual;
    actual = Mathmatics . Mul(a, b);
    Assert .AreEqual(expected, actual);
    }
  3. 创建顺序测试
    在测试项目上添加新项--顺序测试(Ordered Test)

    打开顺序测试文件,会显示如上图,左侧是项目中已经存在的测试方法,而右侧则是编辑的测试顺序。而一个测试方法可以在右侧的顺序中多次出现。
    也可以通过左下方的复选框来选择测试失败后是否继续执行后面的测试。
  4. 执行测试

    执行测试的话,可以在打开Test View(测试视图),选中刚刚新增的顺序测试,执行就可以了
  5. 测试结果


    顺序测试在TestResult(测试结果)结果中显示为一条记录,可以双击该记录,查看详细信息,如下图:

    在这里,我们刚刚所建的顺序测试的执行情况就一目了然了。

    关于顺序测试的内容就介绍这些了,更多内容还是需要大家来一起发掘。

使用VisualStudio进行单元测试之四 顺序测试的更多相关文章

  1. Visual Studio 单元测试之四---Generic测试

    原文:Visual Studio 单元测试之四---Generic测试 这里的Generic我觉得理解为外部测试更合适.因为在这种测试模式下Visual Studio只是启动一个外部的程序,然后通过返 ...

  2. VS2017创建的单元测试不支持顺序测试

      问题:使用IDE创建的单元测试项目,标准引用是,导致不能添加顺序测试,复制其它项目的顺序测试文件进行编辑时,也会提示基于MSTest V2的测试不能用于顺序测试     解决办法: 移除自带的NU ...

  3. Android单元测试之四:仪器化测试

    Android单元测试之四:仪器化测试 仪器化测试 在某些情况下,虽然可以通过模拟的手段来隔离 Android 依赖,但代价很大,这种情况下可以考虑仪器化的单元测试,有助于减少编写和维护模拟代码所需的 ...

  4. Android单元测试与模拟测试详解

    测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...

  5. Unity脚本在层级面板中的执行顺序测试2

    上一篇测试了生成顺序对执行顺序的影响,链接:LINK 执行顺序测试3: LINK 这篇主要测试一下Awake,OnEnable,Start三个常用消息的循环顺序 1.测试消息循环顺序 先上一个最简单的 ...

  6. Unity脚本在层级面板中的执行顺序测试3

    断断续续的写了3篇,以后有时间可以做成一个系列了 前面2篇测试了GameObject的顺序,以及Awake和OnEnable的时机: Unity脚本在层级面板中的执行顺序测试1 http://www. ...

  7. Unity脚本在层级面板中的执行顺序测试4-附加整理

    测试4为一些附加内容,后续的各种tips都加在此. 前几篇测试的链接: Unity脚本在层级面板中的执行顺序测试1 http://www.cnblogs.com/hont/p/4298110.html ...

  8. Oracle 列顺序测试

    列顺序测试 大家在做表设计的时候通常对表中列的排列顺序没有过多注意,但是其实越常用的列,它的位置越靠前,则查询速度越快. 因为每个block里面存储了row directory (每行数据在块中的位移 ...

  9. 使用VisualStudio进行单元测试之三

    私有方法需不需要测试,本文不做讨论.假设您也认为有时候,私有方法也需要进行测试,那就一起来看看如何进行私有方法的测试. 准备测试代码 测试用的代码还是前面测试时使用过的代码,不同之处就是在类中增加了一 ...

随机推荐

  1. Java-hibernate的映射文件

    Hibernate 需要知道怎样去加载(load)和存储(store)持久化类的对象.这正是 Hibernate 映 射文件发挥作用的地方.映射文件告诉 Hibernate 它应该访问数据库(data ...

  2. java 反射,注解,泛型,内省(高级知识点)

     Java反射 1.Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs    取得任何一个已知名称的class的内部信息, 包括 ...

  3. java.sql.Date to java.util.Date

    发这篇博文的题目可能无法直接表示内容,但是确实是java.sql.Date和java.util.Date. 今天在使用'net.sf.json.JSONObject'封装json数据的时候,碰到很奇怪 ...

  4. Linux使用fdisk进行磁盘管理

            Fdisk分区工具1. Overview*Fdisk是IBM的老牌分区工具,支持绝大多数操作系统,几乎所有的Linux操作系统都默认装有fdisk:包括在Linux Rescue模式下 ...

  5. C++Primer学习笔记

    一.开始 二.基础 三.常用库 四.其他 五.附录

  6. Sql Server内置函数实现MD5加密

    实例 MD5加密“123456”: HashBytes('MD5','123456') 结果:0xE10ADC3949BA59ABBE56E057F20F883E (提示:看完最后,结果要进行转换.) ...

  7. CSS 尺寸 (Dimension)

    CSS 尺寸 (Dimension) 属性允许你控制元素的高度和宽度.同样,它允许你增加行间距. 更多实例 设置元素的高度 这个例子演示了如何设置不同元素的高度. 使用百分比设置图像的高度 这个例子演 ...

  8. string的一些更改发

    /* String 类:  1.1字符串的长度    int c =对象.length();  1.2字符串某个字符的位置  int index=对象.indexOf("字母")  ...

  9. python的py文件打包成exe

    一.首先需要安装Pyinstaller-- 使用pip来安装模块 (我电脑上装的是python的一个编译环境Anaconda,如果电脑上装的是python自带的IDE的话,就直接进入python的安装 ...

  10. linux下VI编辑器的使用

    一.VI编辑器简述       VI 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,使它成了效率很高的文本编辑器.尽管在Linux上也有很多图形界面的编辑器可 ...