主单元测试概念 == 断言
用于该形式单元测试的主要概念是,自动化单元测试是基于“断言”的,即可定义为“事实或您相信为事实的内容”。从逻辑角度看,请考虑该语句“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 的断言。
表 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 |