单元测试案例_第1页
单元测试案例_第2页
单元测试案例_第3页
单元测试案例_第4页
单元测试案例_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Chongqing Microsoft IT Academy微软IT学院重庆软件服务外包人才培训基地系列课程单元测试Strategic Partnership Group 重庆软件服务外包人才培训基地单元测试 在软件开发过程中,我们可能会有很多的模块,而每个模块有可能又由许多函数组成。当我们的系统发生错误时,我们必须定位发生错误的模块,然后精确到模块中某个具体的函数中,而这工作往往又是非常浪费时间和生产效率的,如果系统越复杂,那么定位错误的成本将越高。所以在每个函数集成进模块时,必须通过严格的单元测试来验证。 在VS2010中我们可以为我们的函数自动生成单元测试,无论它是否是public或者的

2、private的。所有用于单元测试的类和函数都被定义在Microsoft.VisualStudio.TestTools.UnitTesting这个命名空间中。Strategic Partnership Group 重庆软件服务外包人才培训基地 我们先创建一个被测试的类库工程,名字叫TestLibrary,然后添加如下代码Strategic Partnership Group 重庆软件服务外包人才培训基地Strategic Partnership Group 重庆软件服务外包人才培训基地 然后我们在需要单元测试的函数上鼠标右键,如图会有个CreateUnitTests选项。Strategic P

3、artnership Group 重庆软件服务外包人才培训基地 点击该选项后,就会弹出如下窗口,该窗口会显示出该工程和类中所有的函数,这里我们可以选择我们要进行单元测试的函数。Strategic Partnership Group 重庆软件服务外包人才培训基地 我们选择CalculateTotalPrice和GetTotalPrice两个函数,点击OK,然后输入测试工程的名字点Create。(我们可以在Outputproject选项中选择一个以创建的工程或者创建一个新的测试工程)我们的单元测试代码就自动创建好了,当然,这个自动创建的测试代码并没有完成的,而是为我们的单元测试搭好了框架而已Str

4、ategic Partnership Group 重庆软件服务外包人才培训基地 其实,我们可以在创建单元测试时适当控制自动生成的测试代码,如图我们点击Setting按钮。Strategic Partnership Group 重庆软件服务外包人才培训基地 这时会弹出如下图的窗口Strategic Partnership Group 重庆软件服务外包人才培训基地在该对话框中,我们可以对生成的测试文件、测试类以及测试方法自定义名称。 Mark all test results Inconclusive by default:选中该复选框可为每个测试:选中该复选框可为每个测试方法提供方法提供 Ass

5、ert.Inconclusive() 语句作为占位符语句作为占位符 Assert。清除该复选框可。清除该复选框可消除占位符消除占位符 Assert。 Enable generation warnings:在测试函数创建中如果遇到任何的错误,代:在测试函数创建中如果遇到任何的错误,代码生成器会将这些错误信息以注释的形式写在生成的代码中。码生成器会将这些错误信息以注释的形式写在生成的代码中。 Globally qualify all types:这个选项是用来解决多个类可能有相同名字的:这个选项是用来解决多个类可能有相同名字的函数问题,单元测试文件可能包含有多个类的测试函数,所以有可能会函数问题,

6、单元测试文件可能包含有多个类的测试函数,所以有可能会有同名的冲突,所以为了区分开同名的函数,会在测试命名中添加有同名的冲突,所以为了区分开同名的函数,会在测试命名中添加namespaces。 Enable documentation comments:选中此复选框可为每个测试方法提供:选中此复选框可为每个测试方法提供占位符注释。清除该复选框可消除占位符注释。占位符注释。清除该复选框可消除占位符注释。 Honor InternalsVisibleTo Attribute:选中该复选框可使标为:选中该复选框可使标为 Friend 或或 Internal 的方法被视为公共方法(推荐)。清除该复选框则

7、需要使用专用的方法被视为公共方法(推荐)。清除该复选框则需要使用专用访问器测试这些方法。访问器测试这些方法。Strategic Partnership Group 重庆软件服务外包人才培训基地 此外还可以注意到自动生成的代码中有一些被注释的方法,这些方法我们可以选择使用: ClassInitialize()标记的方法可在运行类中的第一个测试前运行代码。 ClassCleanUp()标记的方法可在运行完类中的所有测试后运行代码。 TestInitialize()标记的方法可在运行每个测试前运行代码。 TestCleanUp()标记的方法可在运行完每个测试后运行代码。Strategic Partn

8、ership Group 重庆软件服务外包人才培训基地 Assert语句用来比较从方法返回来的值和期望值,然后返回pass或者fail的结果。如果在一个测试方法中有多个Assert的话,那么这个测试方法要通过测试必须让所有的Assert方法通过,不然,其中有一个fail,那么这个Case就会fail。如果我们的单元测试中没有任何的Assert语句,那么它的结果始终是pass的。 Assert类有许多进行比较的方法,此外还有StringAsserts、CollectionAssert类也可用于单元测试中,具体的我们可以参加MSDN上的介绍了。Strategic Partnership Group

9、 重庆软件服务外包人才培训基地 下面我们修改一下CalculateTotalPriceTest()这段测试代码,并将最后的Assert.Inconclusive注释:Strategic Partnership Group 重庆软件服务外包人才培训基地 最后我们可以在该函数中,右键鼠标然后点击RunTests运行测试一下我们的代码。我们就可以在TestResults窗口中看见我们运行的结果。Strategic Partnership Group 重庆软件服务外包人才培训基地 有时,我们会对同一条测试用例根据不同的输入数据运行多次测试。为了不重复写单元测试代码,VS允许我们的每一条单元测试函数都可

10、以连接自己的数据源,数据源的文件格式可以是CSV、XML、SQLServer数据库或者Oracle数据库等。Strategic Partnership Group 重庆软件服务外包人才培训基地 下面我继续使用上次进行单元测试的函数,该函数体如下:Strategic Partnership Group 重庆软件服务外包人才培训基地 然后按照平常那样创建一个单元测试之后,修改测试代码如下:Strategic Partnership Group 重庆软件服务外包人才培训基地 现在来开始创建测试用例的数据源,我直接就用一个CSV文件就行了。打开Excel,输入数据如下,然后保存为.csv文件。Stra

11、tegic Partnership Group 重庆软件服务外包人才培训基地 创建好数据源之后,我们重新转到测试工程,然后打开TestView或者TestListEditor窗口,选中我们要连接数据源的测试用例,右键属性,然后点击DataConnectionString属性,它会弹出一个连接向导,选择CSV文件,然后选择刚刚保存的csv文件。选择完成之后,该测试用例的属性如下图所示Strategic Partnership Group 重庆软件服务外包人才培训基地Strategic Partnership Group 重庆软件服务外包人才培训基地 然后会注意到我们之前的测试函数上多加了几个Attribute。现在我们重新修改一下单元测试代码:Strategic Partn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论