`
cdragon
  • 浏览: 76624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

用vs2008和NUnit进行程序自测

阅读更多

“在进行单元测试之前需要弄清楚被测试代码实现的功能和相应的逻辑关系;同时还要考虑到测试的输入内容。也就是说,测试用例的设计。用例的设计要保证面面俱到,是否覆盖了每一条路径。而如何做到面面俱到这就需要测试组的成员们对每个函数进行详细的分析,将分析和讨论的结果归入相关的测试库中”

“初期工作的进度慢并不要紧,只要能做得很详细对于以后的测试还是有很大的帮助。或许以后的测试中,只要直接调用原来写过的测试类库,修改部分简单的语句就可以实现新模块的单元测试了。”

“刚开始这部分工作的时候,对于测试人员来说可能是比较困难的。补吧,练吧,做多了,自然就会写了。”

 

相信一提起测试,大部分的软件开发人员还是比较发怵的,不熟悉外加小有情绪。上面的片断,可以让我们体会一下测试的过程。以下是笔者对测试的个人理解,贴出来共勉,激励大家,激励自已,使尊重测试成为一种习惯。

 

使用测试-SOS

软件开发人员的创造性和贡献精神,铸就了IT世界的繁华和鼎盛。然而,软件工程浩大繁杂,即使小项目,如何能使创新精神蓬勃腾飞,减少软件bug或失误,应该是软件人员孜孜以求的效果。测试的哲学基础是:创新+接受规则=有效沟通。

 

软件测试应该由测试人员的外驱行为,转变为软件开发人员的自驱努力。这就是结构优美(structure gracely)、目标集中(objective focus)、用户中意(satisfied)-简称SOS-的最终产品!

 

软件测试终究来说,分为两种,即对组件的测试和对组件复合的测试。前者是我们通常命名的白盒测试,后者是黑盒测试。白盒是基准,黑盒是方法论,也就是白盒测试是必需的。白盒测试目前在OOP下,主要表现为对类的测试,包括设计定位的准确维度、开发原则规则符合维度、暴露部分的结构化维度(如接口的通用性灵活性、服务适配符合等)等。

 

测试理论的基础,在于用编程的方式实现所需要的测试方法!从而对软件或服务进行测试。难度在于用最合适的方法模式->进行少量的代码->完成大量的测试。

 

使用工具并不是我们的目的,但恰当的工具必会使我们得到实际的、持续的帮助、与我们结为一体并使我们得心应手。测试软件是这样的工具吗?

答案是肯定的。(试试吧 为什么不呢?)

 

在工具选择上,到底是用NUnit还是用MS自带的,我们需要选择下。

 

使用MS自带测试,
vs2005中仅有vsts TestEdition具有单元测试的功能,其它版本没有;vs2008中专业版既已支持单元测试。笔者试用了下,感觉不错,使用时--只要在成员的代码上右键“创建单元测试”即可(尤其是从测试文件中 “转到自定义处”去查看原始成员 的小功能,用起来很方便)。

MS自已的产品集成度会好一些,满足开发人员的测试是没有问题的。

 

 

使用NUnit测试工具,其实很简单,关键就是vs允许使用外部测试工具,添加起来很简单,解决方案资源管理器->右键->属性->调试->使用外部程序设置、在添加引用中“浏览”,选择NUnit.exe即可;在程序中,需要添加using NUnit.Framework。这样,按F5运行项目后,NUnit会自动启动,就可以进行测试。





  

NUnit在测试中的实际使用方面,有两个重要的attribute,分别是[TestFixture]和[Test],再有一个重要的类Assert(英文“断言、生效”),这个类型大概有20个方法,让你用来验证主要程序的结果是否与你期待的结果一样。(这些方法的使用会给我们调试程序带来较大的方便,其使用可参考链接,可以获得更多的了解:

http://blog.sina.com.cn/s/blog_484dc3d20100d7l0.html

http://www.360doc.com/content/06/1108/12/10846_253089.shtml

 

试试吧,很方便哦,可以让我们更好地写好代码~呵,不用写一堆MessageBox.Show来搞掂了。相信对于Agile开发,这应该是不可或缺的选项(之一)。

  • 大小: 83.1 KB
  • 大小: 44.1 KB
分享到:
评论

相关推荐

    在.NET环境中使用单元测试工具NUnit

    虽然由程序开发人员自己写Unit Tests(单元测试)来测试自己写的程序代码已经行之有年,但是大部分的Unit Tests都是写在主要的程序代码已经设计好、写好之后。大部分的程序开发人员都有相同的的经验,在主要程序代码...

    我的自动化测试程序

    个人编程中比较喜欢重构,重构能够提高自己的代码质量,使代码阅读...在Java中有JUnit,在C#中有NUnit,在C++中,笔者并不知道有哪些自动化测试工具(笔者的孤陋寡闻)。于是就产生了自己写一个自动化测试程序的想法。

    .NET开源的单元测试框架xUnit.zip

    这个以NUnit接班人自许的新框架打算消除NUnit的错误和缺点,并打算在框架中加入一些最佳实践和扩展能力。 Jim Newkirk和Brad Wilson这两位xUnit.net的创造者,从NUnit和其他单元测试框架的经验中总结出来以下改进...

    RoslynNUnitLight:一个轻量级的框架,用于使用NUnit编写用于Roslyn诊断分析仪的单元测试,代码修复和重构,

    一个轻量级的框架,用于使用NUnit编写用于Roslyn诊断分析仪的单元测试,代码修复和重构。 快速开始 将NuGet的软件包安装到您的项目中。 创建一个新类,该类继承自所提供的*TestFixture类之一,该类与要测试的内容...

    TestDriven.NET-3.0.2749_Personal

    * 完全支持在VS 2008和VS 2010中使用MSTest * 完全支持.NET Reflector 6 Pro * 支持NUnit 2.5.3 * 支持VS 2010 * 支持Silverlight 4的测试 TestDriven.NET兼容于如下VS版本:Windows XP、Vista、2000、2003和...

    NUnitAsp-2.0 安装包 下载 软件测试

    NUnitAsp是asp.net页面自动测试工具.它是NUnit的扩展,NUnit是.NET测试驱动开发的工具.一旦你做过自动化测试,你将一无反顾的对你的代码充满信心....如果你在使用ASP.NET,它是程序测试工具不可缺少的部分.

    TestNG中文帮助文档(译)

    它源自于JUnit和NUnit的启发,并且引入了若干新的特性,使得它更易用,例如:  JDK 5 Annotations (JDK 1.4 则可以通过 JavaDoc annotations 获得支持).  灵活的测试配置。  支持数据驱动测试 (使用 @Data...

    C#语言开发的基本流程.doc

    C#开发的基本流程主要包括以下步骤: 环境搭建:首先,你需要在你的计算机上安装Visual Studio,这是C#开发的主要...Visual Studio提供了内置的单元测试框架,你也可以使用第三方框架如NUnit和xUnit。 部署和发布

    编写高质量的代码---单元测试Nunit+NCover

    当然,对于这些功能测试,集成测试等都是面向测试人员的,开发人员只需要将编写好的程序交由测试人员,然后自己根据测试结果进行Debug。我们有没有办法在开发人员这一级就实现很好的质量保证呢,这样在我们提交到...

    Pro .NET Best Practices .net最佳实践 英文版

    12.2.1 NUnit的GUI和控制台运行器 12.2.2 ReSharper测试运行器 12.2.3 Visual Studio测试运行器 12.2.4 Gallio测试运行器 12.2.5 xUnit.net测试运行器 12.3 xUnit测试模式 12.3.1 标识测试方法 12.3.2 标识测试类和...

    《.NET最佳实践》.((美)Stephen Ritchie)

    12.2.1 NUnit的GUI和控制台运行器 221 12.2.2 ReSharper测试运行器 224 12.2.3 Visual Studio测试运行器 227 12.2.4 Gallio测试运行器 230 12.2.5 xUnit.net测试运行器 231 12.3 xUnit测试模式 233 12.3.1 ...

    Revit.TestRunner:Autodesk Revit的单元测试运行器

    可以使用独立的桌面应用程序或控制台应用程序启动测试运行。 选择您喜欢的测试组件并运行所需的测试。 测试程序集无需具有对Revit.TestRunner的任何引用。 您要做的就是获取NUnit的nuget包并编写一些高级测试。入门...

    Nant 1.0 Alpha

    遗憾的是,NAnt 缺少漂亮的图形界面,但它的确具有可以指定应该在生成过程中完成哪些任务的控制台应用程序和 XML 文件。注意,MSBuild(属于 Visual Studio 2008 的新的生成平台)为每种健壮的生成方案进行了准备,...

    Nant source

    遗憾的是,NAnt 缺少漂亮的图形界面,但它的确具有可以指定应该在生成过程中完成哪些任务的控制台应用程序和 XML 文件。注意,MSBuild(属于 Visual Studio 2010 的新的生成平台)为每种健壮的生成方案进行了准备,...

    asp.net知识库

    使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的...

    GuiTestSharp:一个可扩展的多平台框架,用于在WinForms,WPF,GtkSharp和Xamarin.Mac中测试GUI。

    dotnet GUI测试自动化平台一个非常简单的平台,可在... 我们为Windows,GNU / Linux和macOS开发了GUI,尽管我们在Windows上使用了著名的商业工具进行GUI自动化测试,但我们没有针对Linux和macOS的解决方案。 现有解决

    FinalBuilder Server 7.0.0.317 crack,完美破解

    8)支持nunit,dunit,vs unittest,xunit,mbunit 总结下来,你能想到的,基本他都支持,他不支持的,可以用插件迅速集成扩展 还在等什么,赶紧建一个自动化编译部署环境,把Dev-QA-STAGING-PROD,管理器里 注意点:...

    校内API开发. pdf

    校内应用程序开发:.NET应用程序开发标准化 通过为你企业建立个公共应用结构框架来提高.NET应用开发效率 by Rao Chejarla (印度) 涉及技术:ADO.NET、ASP.NET 开发企业应用是个复杂过程你可以运用Microsoft .NET技术...

    《.NET实践之旅 C#篇》黄凯波著

    第二部分为辅线,介绍c#以及.net framework的基础和特性,采用结合实际工程的方式来引入这些重要的知识点,说明为什么用它们以及怎么使用,并且阐述这些技术的限制,以帮助读者形成自己的技术判断能力,这些知识也是...

Global site tag (gtag.js) - Google Analytics