Visual Studio 单元测试之二---顺序单元测试

此文是上一篇博文Visual Studio 单元测试之一---普通单元测试的后续篇章。如果读者对Visual Studio的单元测试不熟悉的话,请先参看上一篇。http://blog.csdn.net/tjvictor/archive/2011/02/09/6175362.aspx

本文会自动略去上篇中提到过的相关概念、方法。本文的例子可以使用下面的链接下载:

http://download.csdn.net/source/3014236

上一篇我们做的测试都是一个一个进行的,当然我们也可以一次性选择多个测试方法进行,但是测试运行的顺序以Test List Editor窗口中的默认列表顺序为准。在实际场景中,我们需要进行有顺序的单元测试,例如电子档案存档过程:创建电子档案->初步审核->确认无误->进行归档。那么上面四步可能每一步都是一个独立的单元测试函数,如果让它们按一定顺序执行呢?这就是我们这篇文章要讨论的。

上一篇我们已经建立了AddTest(),DivideTest(),MinusTest(),MultiplyTest()四个方法,假设就是上面电子存档的四个步骤。

右击UTProject->Add->New Test->Ordered Test如下图:

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="Picture_x0020_11" o:spid="_x0000_i1029" type="#_x0000_t75" alt="11.JPG" style='width:378pt;height:324.75pt;visibility:visible; mso-wrap-style:square'> <v:imagedata src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.jpg" mce_src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.jpg" o:title="11" /> </v:shape><![endif]--><!--[if !vml]-->11.JPG<!--[endif]-->

Note:其中Basic Unit Test是只包括[TestMethod]的单元测试文件模板,Unit Test是包括上文中提到的[ClassInitialize()],[ClassCleanup()], [TestInitialize()], [TestCleanup()][TestMethod]单元测试文件模板。其他模板我会在后续篇章中逐一介绍。

选择OrderedTest后,我们会发现多了一个OrderedTest1.orderedtest文件(为方便,我使用了VS默认命名规则,实际应用中,大家应把文件名改成统一实名)。打开后,会出现顺序挑选窗口,如下图:

<!--[if gte vml 1]><v:shape id="Picture_x0020_12" o:spid="_x0000_i1028" type="#_x0000_t75" alt="12.JPG" style='width:6in;height:213.75pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.jpg" mce_src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.jpg" o:title="12" /> </v:shape><![endif]--><!--[if !vml]-->12.JPG<!--[endif]-->

运行方式和运行普通单元测试方法一样,在Test List Editor窗口,如下图:

<!--[if gte vml 1]><v:shape id="Picture_x0020_13" o:spid="_x0000_i1027" type="#_x0000_t75" alt="13.JPG" style='width:6in;height:234pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image004.jpg" mce_src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image004.jpg" o:title="13" /> </v:shape><![endif]--><!--[if !vml]-->13.JPG<!--[endif]-->

最后介绍一下如何应用Test List Editor进行单元测试用例的归类。

当测试用例多起来后,要找一个测试方法就变得十分困难,这时就需要归类了。

打开Test List Editor->右击Lists of Test->Add Test List:如下图

<!--[if gte vml 1]><v:shape id="Picture_x0020_14" o:spid="_x0000_i1026" type="#_x0000_t75" alt="14.JPG" style='width:6in;height:243.75pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image006.jpg" mce_src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image006.jpg" o:title="14" /> </v:shape><![endif]--><!--[if !vml]-->14.JPG<!--[endif]-->

将测试文件依次拖拽进新建的分类中,这样方便在多个测试方法中进行归类,查找。而且选取这个分类时,分类中的所有测试方法也一起被选中,下图显示归类后的对比图。

<!--[if gte vml 1]><v:shape id="Picture_x0020_15" o:spid="_x0000_i1025" type="#_x0000_t75" alt="15.JPG" style='width:6in;height:193.5pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image008.jpg" mce_src="file:///C:\DOCUME~1\victorg\LOCALS~1\Temp\msohtmlclip1\01\clip_image008.jpg" o:title="15" /> </v:shape><![endif]--><!--[if !vml]-->15.JPG<!--[endif]-->

至此,顺序单元测试已经全部讲完,请关注我的下一篇博文:Visual Studio 单元测试之三---压力测试

如需转载,请注明本文原创自灰太狼的博客:http://blog.csdn.net/tjvictor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值