码迷,mamicode.com
首页 > 其他好文 > 详细

单元测试--llorch的Visual Studio 基础工具教程(二)

时间:2015-06-23 11:59:56      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:

通用的示例说明:

  • 本系列博客只讨论工具的基础,不讨论任何语言。
    • 甚至不讨论快捷键:-)
    • 可以用鼠标就完成本教程
  • IDE默认指代的是Visual Studio 2013 Community Edition。 本系列文章的结尾,你可以熟练地使用它写程序。
  • 将Visual Studio启动后的默认布局状态称为主窗口,主窗口标题栏中显示的项目名称不必要。
  • 在日常口语和Windows资源管理器的基础上定义了几个描述菜单操作的符号:[]、{}、/、>>、=、(,)。
  • 检查一个设置项的表示方法为:
    • [窗口名称]/{菜单名称}/{子菜单名称}/{设置项项名称}=设置项的值
  • 例如默认的Debug配置:
    • [主窗口]/{解决方案配置管理器}=Debug
  • 检查多个设置项时,按照单个设置项的方式,逐一写出
  • 检查一个设置项有多个值的时候,用括号包括并用内部的逗号分隔,如:
    • [解决方案资源管理器]/{项目名称}/{引用}=(System,System.Core,System.Data,System.Xml)
  • 执行一个左键单击序列,就是将最后的检查项换成”/”,例如退出IDE:
    • [主窗口]/{文件}/{退出}/
  • 右键菜单的连接符号为>>,例如刷新Windows桌面:
    • [桌面]>>{刷新}/
  • 弹出窗口中的设置项的表示与上类似
  • MDI子窗口中设置项的表示与上类似,注意到在Visual Studio中,MDI子窗口的名称在它的左上角或者可能自动吸附到主窗口的四周
  • 标题栏和状态栏作为菜单的推广,适用于上述表示方法
  • 缺陷说明
    • 欢迎反馈,mailto:cqwd2010@qq.com
    • 作者的首选语言是C#
    • 作者是软狗
    • 作者的IDE没装中文语言包,所以有的名词翻译得不准确:-(
    • 由于还没有厘清相关的证书问题,版权保留
    • 系列文章没有提出或解决新的问题,目的只是科普

 

正文

 

第一,测试先行

测试先行至少代表了两个好的实践:一是在后续的工作中可以专心于编写程序之上;第二更加深层的理由是接口已经稳定。接口与实现的辩证关系是这样的,“脏” 代码总是从接口和实现都不稳定的编程开始的。接口和实现都稳定的肯定不是编程,而是产品。接口稳定而实现不稳定的代码还有改善的可能,而接口不稳定的代码基本上难以推进工作。总之,不应该在接口不稳定的情况下开始写代码。

源代码与代码片段之间最大的区别在于,源代码可以在一段时间以内保持稳定,因为源代码是充分测试过的。一般的示例只能说明原理,用作代码片段,而不能作为源代码。

测试先行不代表首先创建测试项目。相反,应该先创建项目”项目1”,然后再创建项目”项目1Test”。逻辑上的顺序是这样的:先确定项目的类型,其次确定项目的接口,然后根据接口编写测试项目的内容,最后进入”编码——测试”的反复循环,直到写出了能够通过测试的代码。至此又开始另一个”项目X”的工作。

 

第二,单元测试

单元测试是最简单而且最有必要的测试。Visual Studio已经集成了很好的单元测试实践,让我们开始吧:-)

[主窗口]/{文件}/{新建}/{项目}/

[新建项目]/{单元测试项目}/

[新建项目]/解决方案=添加到当前解决方案

[新建项目]/OK/

这样,我们的解决方案当中有了一个新的测试项目。可以发现测试项目的引用非常简单。在引用处添加对需要测试的项目的引用,就可以开始编写测试函数了。

运行测试项目的方法是:

[主窗口]/{测试}/{运行}/{所有测试}/

这会弹出测试资源管理器,告诉用户在测试函数执行过程中出现的问题。值得注意的是,自始至终,不推荐为每一个测试单独再编写main()方法,因为main()方法对应的控制台应用程序是一个系统的前端。当然,编写专门的控制台应用程序来进行全部测试也是不错的。

 

第三,测试和调试的区别

最直观的区别在于,调试就是检查断点处的状态是否符合预期,测试就是看整体上的行为是否符合预期。调试的目的是确保正确的实现,着重接口的内部实现,通常不需要借助专门的外部代码。测试的目的是要集中精力去实现,着重接口的外部行为,要借助专门的外部代码。有的测试还需要借助外部的测试集(可以理解成一个txt文件)来进行。

 

第四,测试的代码质量

测试还有一个可爱的好处是,测试代码的要求没有正式代码那么苛刻:-)。通常可以借用一些教科书或者官方的示例代码。

 

第五,编程中精力的分配

测试的智慧在于集中。测试从工序上说,是先用一小段时间确定了测试方法,然后用一大段时间去编写实际工作的代码。它避免了开发人员同时写业务代码和验证代码的尴尬。因此,可以说测试的好处在于让开发人员将精力集中到实现上去。

不仅如此,测试确保了整个开发工作围绕接口来进行,有利于复用和升级。

 

总结

使用Visual Studio完成的测试只能作为用户了解软件工程的一个开始,但是”在一段时间以内专注地进行编程”而不是写一大堆难以控制的main方法这个方法论是值得保持的。

单元测试--llorch的Visual Studio 基础工具教程(二)

标签:

原文地址:http://blog.csdn.net/u010289866/article/details/46602883

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!