• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

  使用 Visual Studio 2005 Team System 进行单元测试

发布: 2009-12-18 10:47 | 作者: 不详 | 来源: 领测国际软件测试网采编 | 查看: 94次 | 进入软件测试论坛讨论

领测软件测试网

      主单元测试概念 == 断言

  用于该形式单元测试的主要概念是,自动化单元测试是基于“断言”的,即可定义为“事实或您相信为事实的内容”。从逻辑角度看,请考虑该语句“when I do {x}, I expect {y} as a result”。

  这可以轻松地翻译为代码,方法是使用 Microsoft.VisualStudio.QualityTools.UnitTesting.Framework 命名空间中可用的三个“断言”类中的任一个:Assert、StringAssert和CollectionAssert。主类Assert提供用于测试基础条件语句的断言。StringAssert类自定义了在使用字符串变量时有用的断言。同样,CollectionAssert类包括在使用对象集合时有用的断言方法。

  表 3 显示可用于当前版本 Unit Testing Framework 的断言。

tdHeader vAlign=top>
表 3. VSTS Unit Testing Framework 断言
断言类 StringAssert 类 CollectionAssert 类
AreEqual() AreNotEqual() AreNotSame() AreSame() EqualsTests() Fail() GetHashCodeTests() Inconclusive() IsFalse() IsInstanceOfType() IsNotInstanceOfType() IsNotNull() IsNull() IsTrue()
Contains() DoesNotMatch() EndsWith() Matches() StartsWith()
AllItemsAreInstancesOfType() AllItemsAreNotNull() AllItemsAreUnique() AreEqual() AreEquivalent() AreNotEqual()AreNotEquivalent()Contains()DoesNotContain() IsNotSubsetOf()IsSubsetOf()

  这些自动化单元测试用什么运行?

  正如前面提到的,xUnit 框架将“测试运行器”的概念定义为应用程序负责:(a) 执行单元测试;(b) 报告测试结果。对于本文,包含 Visual Studio 2005 Team System (VSTS) 的 Unit Testing 引擎作为我们的“测试运行器”。图 2 表示BankAccountTests.cs类的执行结果。

  图2.测试结果窗格:单元测试执行结果

  Microsoft Visual Studio 2005 使用源项目的代码模型动态填充该视图。它基于该源代码中的自定义属性动态发现有关该测试套件的信息。表 4 表示最常见的单元测试属性(以及执行的次序)。

表 4. 常见单元测试属性
属性 描述

TestClass()

该属性表示一个测试装置。

TestMethod()

该属性表示一个javascript:tagshow(event, '%B2%E2%CA%D4%D3%C3%C0%FD');" href="javascript:;" target=_self>测试用例

AssemblyInitialize()

在执行为执行选择的第一个TestClass()中的第一个TestMethod()之前,执行带有该属性的方法。

ClassInitialize()

带有该属性的方法在执行第一个测试之前调用。

TestInitialize()

带有该属性的方法在执行每个TestMethod()之前调用。

TestCleanup()

带有该属性的方法在执行每个TestMethod()之后调用。

ClassCleanup()

带有该属性的方法在执行 ALL 测试之后调用。

AssemblyCleanup()

在执行为执行选择的第一个TestClass()中的第一个TestMethod()之后,执行带有该属性的方法。

Description()

提供关于给定TestMethod()的描述。

Ignore()

由于某种原因忽略TestMethod()TestClass()

ExpectedException()

当测试特定异常时,如果使用该属性指定的异常不是从实现代码引发,则测试不会失败。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网