zoukankan      html  css  js  c++  java
  • Unit Test with VS.NET

    Unit Test with VS.NET

    2014-10-30

    定义
    单元测试框架
    Visual Studio 2008提供的单元测试框架
    参考

    定义[1]


     返回

    传统的单元测试:是一段代码(通常一个方法)调用另外一段代码,随后检验一些假设的正确性。如果假设的结果错了,单元测试失败。一个“单元”指的是一个方法或函数。

    优秀的单元测试:是一段自动化的代码,用来调用被测试的方法或类,而后验证基于该方法或类的逻辑行为的一些假设。单元测试几乎总是用单元测试框架来写的。它写起来很顺手,运行起来不费时。它是全自动的、可信赖的、可读性强、可维护。

    单元测试框架[1]


     返回

    作用:单元测试是基于单元测试框架提供的库,是用代码实现的。然后在一个独立的单元测试工具中运行,开发人员可以去评估结果(以UI或者文本的方式),也可以利用自动化构建过程去评估结果

    图1 单元测试框架

    表一 单元测试框架如何帮助开发人员编写和执行测试,评估结果

    单元测试实践 框架的用途
    用方便和结构化的方式编写测试

    框架开发人员提供一个类库,其中包括:

    • 可以被继承的基类或者接口
    • 放在代码中的特性,用于标示要执行的测试
    • 提供断言(assert)类,包含可用于验证代码的断言方法
    执行一个或者所有的单元测试

    框架提供一个测试运行起(test runner,一个命令行或者GUI工具),它可以:

    • 识别代码中的测试
    • 自动化执行测试
    • 执行过程中现实状态
    • 可以通过命令行调用自动执行
    评估测试执行结果

    测试运行器通常提供以下信息:

    • 执行多少测试
    • 多少测试没有执行
    • 多少测试失败那些测试失败
    • 测试失败的原因
    • 你所写的断言(Assert)信息
    • 失败的代码位置
    • 可能包括导致测试失败的任何异常的完整栈追踪信息,以便让你可以找到调用栈中的各种方法

    Visual Studio 2008提供的单元测试框架[3]


     返回

    图2 Visual Studio 2008提供的单元测试框架

    Unit Test Case Class Level Attributes

    Attributes Used to Establish a Calling Order

    • AssemblyInitializeAttribute
    • AssemblyCleanupAttribute
    • ClassInitializeAttribute
    • ClassCleanupAttribute
    • TestInitializeAttribute
    • TestCleanupAttribute

    Attributes used to Identify Test Classes and Methods

    • TestClassAttribute
    • TestMethodAttribute

    Using Assert Class

    • Assert
    • CollectionAssert
    • StringAssert
    • AssertFailedException
    • AssertInconclusiveException
    • UnitTestAssertException
    • ExpectedExceptionAttribute

    参考

    [1] 书籍:《.NET单元测试艺术》

    [2] 单元测试之Stub和Mock

    [3] Unit Tests Overview

  • 相关阅读:
    Binary Trees
    [POJ] String Matching
    Tree
    Maxmum subsequence sum problem
    poj 2104 划分树
    poj 2486 树形dp
    poj 1848 树形dp
    hdu 4578 线段树
    hdu 4585 set应用
    hdu 2412 树形DP
  • 原文地址:https://www.cnblogs.com/Ming8006/p/4057452.html
Copyright © 2011-2022 走看看