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

顺序测试,顾名思义,就是按照预先设定的顺序来测试一系列的方法。
  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. [Excel] C#GridViewExport帮助类,美化导出 (转载)

    主要功能如下1.将整GridView的数据导出到Excel中关增加一个效果线做美化最新的GridViewExport操作类看下面代码吧 /// <summary> /// 类说明:Grid ...

  2. ideadpad-安装win7

    今天帮一个同学的朋友安装win7, 竟然安不上,很久没有出现安不上系统了, 后来发现他的笔记本是新的类型,预先注意事项为: 1,启动的时候,使用 Fn+F2进入 BIOS. 2,将Boot中的Boot ...

  3. 在.Net框架中 C# 实现多线程的同步方法详解

    本文主要描述在C#中线程同步的方法.线程的基本概念网上资料也很多就不再赘述了.直接接入主题,在多线程开发的应用中,线程同步是不可避免的.在.Net框架中,实现线程同步主要通过以下的几种方式来实现,在M ...

  4. ios专题 -归档保存数据

    关键类:NSKeyedArchiver  与  NSKeyedUnarchiver 采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCo ...

  5. ubuntu1404下Apache2.4错误日志error.log路径位置

    首先打开/etc/apache2路径下的apache2.conf文件,找到ErrorLog如下 ErrorLog ${APACHE_LOG_DIR}/error.log 这里{APACHE_LOG_D ...

  6. 【BZOJ3527】【FFT】力

    [问题描述]给出n个数qi,给出Fj的定义如下:令Ei=Fi/qi.试求Ei.[输入格式]输入文件force.in包含一个整数n,接下来n行每行输入一个数,第i行表示qi.[输出格式]输出文件forc ...

  7. centos7 玩aapt 安卓应用apk解包工具的安装

    最近在做一个应用市场的项目,需要在centos7下面对apk解包读取其信息,这就想到了使用Google的解包工具aapt,但是由于中国的原因,国内访问原生工具的地址就有些麻烦,这里就贴出地址:http ...

  8. mws文件中的tab文件改为相对路径

    用mapinfo将现有的多个图层(tab)文件保存成一个mws工作空间后,将此mws文件发到另一台电脑上后,打开mws,提示无法打开各个tab文件,文件不存在,显示的路径是当时原电脑添加时的绝对路径. ...

  9. Python定义常量

    用Python实现常量 定义 # coding=utf-8 # const.py class ConstAssignError(Exception): pass class _const(object ...

  10. Python 学习笔记(3) - 控制流、函数

    控制流语句if.while.for.break.continue以上从最终作用效果来讲,同学过的其他语言没有什么不同.需要注意的只是语法,而Python 在语法上是如此让人赞叹和喜欢啊. 控制流语句的 ...