`

TestDriven.NET 2.0——单元测试的好助手

阅读更多

引言

在软件开发领域,测试驱动开发(Test Driven DevelopmentTDD )技术在逐渐为广大开发者所接受,它是在添加新代码 之前让你的测试代码出错的一种开发技术。在开始编写代码之前首先要写你的测试代码,然后再编写代码让你的测试通过,可以想象,如果没有一个好的单元测试工 具,这项工作其实是无法完成的。相信很多.NET 开发人员者对于开源的NUnit 都不陌生,但是它并不能很好的与Visual Studio.NET IDE 集成起来。

这里我将向大家介绍另一款优秀的单元测试工具——TestDriven.NET 2.0 。它是以插件的形式集成在Visual Studio.NET IDE 中的 单元测试工具,能够兼容各种Visual Studio 版本,并且集成了多种单元测试框架诸如NUnitMbUnit ,以及Visual Studio Team System 适配器等。

TestDriven.NET 的前身是NUnitAddIn ,由Jamie Cansdale 大 师开发,一开始作者只是想做一个NUnit 插件集成到Visual Studio 中,经过多次版本更新,NUnitAddIn20049 月底更名为TestDriven.NET ,并在当年的12 月初发布 了它的第一个Release 版本,即TestDriven.NET 1.0 。由于它在开发中的出色表现,让很多开发人员期待它的下一个版本的发布,这一等待却足足等了两年,在今年的10 月底,终于迎来了姗姗来迟的TestDriven.NET 2.0 版 本。然而这一等待却是值得的,在2.0 中,给我们带来了太多的惊喜,它集成了.NET ReflectorNConverNConverExplorerTypeMock.NET 等, 功能更加强大,下面我将一一介绍TestDriven.NET 2.0 中涌现出的这些亮点。

基本使用

安装完TestDriven.NET 2.0 后,重新启动Visual Studio 2005 ,可以发现在Visual Studio.NET IDE 的 右键菜单中会多出一些新项,所有的操作都是直接通过这些右键菜单来完成。我们先来编写一小段简单的测试代码:

[Test ]

public void TestMethodRun()

{

ClassA ca = new ClassA ();

int expected = 2;

int result = ca.GetResult();

Assert .AreEqual(expected, result);

}

在以前如果您使用NUnit 进行单元测试,对于这样一个简单的测试,首先需要运行NUnit GUI ,加载当前的程序集,并点击Run 按钮运行测试,测试通过后再回到IDE 继续编写代码:

现在有了TestDriven.NET 2.0 ,就不会有这么麻烦了,我们不用额外运行任何程序,只需要在Visual Studio 2005 IDE 中右击并选择Run Test 菜单命令就可以运行测试,日常开发中我们都已经习惯了在IDE 中进行这种操 作,所以这样更加符合我们的开发习惯,也不用频繁在应用程序之间切换窗口。

TestDriven.NET 2.0 测试的结果将在Output 窗 口中显示。

稍微写过一点单元测试 代码的朋友都知道,实际开发中的每一个测试,测试方法都不可能只有一个断言(Assert ),在以 前使用NUnit 时,测试如果通不过,我们无法根据错误信息快速准确的定位到代码中的某一个断言, 有了TestDriven.NET 2.0 ,当测试出现错误时,您只需要在Output 窗口中双击错误提示,就可以直接定位到出错的断言代码行,极大的提高了排错的效率。

在上面的测试代码中, 我们仅仅是点击了右键菜单Run Test ,并没有选择运行哪一个测试方法或者测试类,那么TestDriven.NET 2.0 是如何选择并运行测试的呢?其实这跟我们点击鼠标的位置有关,点击鼠标 的位置如果在标记为Test 的测试方法内,它只会执行该测试方法;点击鼠标的位置如果在方法之外而 在标记为TestFixture 的类里面,它会执行该类中所有标记为Test 的测试方法;点击鼠标的位置如果在类之外,而在某一个命名空间里面,则它会执行该命名空间下所有标记为TestFixture 的测试类。

Ad-Hoc 测试

在开发中,我们常常会 遇到跟踪一些变量的值和某些方法的返回值,一般情况下大家都会选择使用Command Window , 这种方式需要通过输入一些命令来查看,未免有些麻烦。TestDriven.NET 2.0 为我们 提供了一键操作的功能,让我们可以随时随地的跟踪方法的返回值等,而不用输入任何命令。在普通的方法中TestDriven.NET 2.0 也可以运行测试(Run Test ),不管方法的作用域是public 还是private ,是实例方法还是static 方法。如果测试方法是实例方法,它会使用默认的构造函数创建一个类的对象,在执行测试完成时再释 放掉该对象。如果方法有返回值,将会显示在Output 窗口中。运行下面的测试:

会在Output 窗口中输出:

Debug 模式测试

在运行测试的过程中, 有时候需要调试跟踪一些信息,如果使用NUnit ,由于它没有集成在IDE 中,也就无法设置断点。在TestDriven.NET 2.0 提 供了以Debug 模式进行测试,可以在测试代码中设置断点,并进行跟踪,这时我们需要选择Test with | Debugger 菜单命令。

停止测试进程

在运行测试过程中,有 时候会有创建一些应用程序域,但并没有被释放,这样会有部分程序集被加载该应用程序域中并且已经锁定,所以可能会造成编译失败。这时需要释放掉一些测试进 程来可以继续编译。在任务栏的右下角,所有的测试进程都会显示在这里,点击右键,选择Stop 菜单 命令可以结束测试进程。

集成 Reflector

.NET Reflector 是一个.NET 平台 下的类浏览器和反编译工具,我们可以用它来浏览程序集的类和方法,可以分析由这些类和方法生成的中间语言 (MSIL) ,相信大家都用过,但它仍然是作为一个独立的工具存在的,在TestDriven.NET 2.0 中它被很好的集成在了Visual Studio.NET IDE ,通过右 键菜单,就可以直接使用.NET Reflector



集成代码覆盖率分析工具

在做单元测试的时候, 我们总是希望知道自己的代码有多少覆盖到了,哪些代码是没有测试到的,如果没有安装Visual Studio Team System ,无法用Team Converage 进行代码覆盖率的分 析,这时使用大名鼎鼎的NConver 是一个不错的选择,并且使用NconverExplorer 可以去查看分析结果,所有这些仍然需要运行新的应用程序,TestDriven.NET 2.0 把这一切都集成到了IDE 中, 可以在没有安装Team System 的环境下使用Team Converage ,也不用单独安装NConver

重复运行测试

重复运行测试可以说是TestDriven.NET 2.0 的 一大亮点。TestDriven.NET2.0 出现之前,如果在运行测试的过程中,测试代码不能通 过,这时我们会花几秒钟时间去修改测试代码,并再次运行测试,但是往往却发现找不到刚才测试的是哪个代码块,这时您可以使用重复运行测试命令,不管你鼠标 点击的位置在哪儿,它都会直接运行上一次的测试。

可插拔的单元测试框架

.NET 平台下,单元测试框架有很多,TestDriven.NET 2.0 不可能把所有的单元测试框架尽收其中,但是它提供了一种很好的可插拔的机制。当你安装一种新的测试框架后,TestDriven.NET 2.0 会自动在它的菜单中出现这一项,在测试项目上点右键选择Test With 菜单命令,可以选择使用哪一个单元测试框架。

集成 TypeMock.NET

在做单元测试的过程 中,最麻烦的部分就是我们的测试代码必须依赖于系统的其他部分,如数据库等。这时候我们会使用一类替代品来代替这些真实的对象,即使用Mock 对象,幸运的是我们不用每次都去实现自己的Mock 对 象,在.NET 平台下,有很多款Mock 对 象的框架供我们选择。在TestDriven.NET 2.0 出现之前,使用哪个Mock 对象的框架,我们需要去下载并安装它们,在TestDriven.NET 2.0 中已经集成了TypeMock.NET 框架,这使得我们可以很方便的直接 使用而不用再去自行选择。

结束语

如果只做单元测试,我 会选择Nunit ;如果要进行类库反编译,我会选择.NET Relector ;如果要分析代码的覆盖率,我会选择NConver ;如果要查看 代码覆盖率的分析结果,我会选择NConverExplorer ,但如果要把以上所有的事情集成在IDE 中一起去做,那毫无疑问,我会选择TestDriven.NET 2.0 。希望我这篇文章能抛砖引玉,引领大家使用TestDriven.NET 2.0 , 走上单元测试之路。当然对于TestDriven.NET 2.0 它的专业版和开发版已经开始收 费,只有个人版仍然可以免费下载使用。

有关TestDriven.NET 2.0 的详细信息请访问:http://www.testdriven.net/

分享到:
评论

相关推荐

    TestDriven.net

    此外,TestDriven.NET 随附了功能完整的 NUnit 和 MbUnit 单元测试框架版本,同时还包括了用于执行 Visual Studio Team System 单元测试的适配器。这些组件将被安装在 TestDriven.NET 目录下的子文件夹中(如图1所示...

    TestDriven.NET-3.0.2749_Personal

    而 TestDriven.NET 是一款优秀的单元测试工具。它以插件的形式集成在Visual Studio.NET IDE中的单元测试工具,能够兼容各种Visual Studio版本,并且集成了多种单元测试框架诸如NUnit,MbUnit,以及Visual Studio ...

    TestDriven.NET最新版

    TestDriven.NET是一款强大的自动化测试工具,专为.NET平台设计,旨在提升开发人员的生产力和代码质量。这款工具的核心功能是集成到Visual Studio IDE中,允许开发者在代码编辑器内快速运行单元测试,实现测试驱动...

    TestDriven.NET2019安装包最新版

    此工具的2019年最新版本是TestDriven.NET-5.0.18119,它提供了一个高效且便捷的方式来运行单元测试,帮助开发者在编码过程中快速验证代码的正确性。 1. **测试驱动开发(TDD)理念**: TDD是一种软件开发方法论,...

    TestDriven.NET 3.5

    TestDriven.NET是一款强大的Visual Studio插件,专注于支持单元测试和持续集成。3.5版本是其发展历程中的一个重要里程碑,提供了对.NET Framework 3.5的支持,同时也兼容了更早的版本,使得开发者能够轻松地在他们的...

    TestDriven.NET

    TestDriven.NET是一款强大的Visual Studio插件,专门用于支持单元测试,尤其在.NET开发环境中。它为开发者提供了在IDE内部快速运行、调试和管理NUnit测试的能力。通过TestDriven.NET,你可以无缝地集成测试到你的...

    TestDriven_NET2_0——单元测试的好助手

    “TestDriven_NET2_0——单元测试的好助手.txt”很可能是关于如何使用TestDriven.NET的指南或教程,包含了详细的步骤和最佳实践,对于初学者或者想要提升单元测试技能的开发者来说,这将是一份宝贵的参考资料。...

    C# 单元测试 TestDriven.NET

    **C#单元测试与TestDriven.NET** C#单元测试是一种软件开发实践,它涉及编写小规模的代码片段,称为测试用例,以验证程序的各个独立部分(即单元)是否按预期工作。这种测试方法有助于确保代码的质量,提高可维护性...

    TestDriven.NET-2.2 安装包 下载 软件测试

    TestDriven.NET 是一个用于Microsoft Visual Studio .NET 的测试软件。TestDriven非常强调测试先行,即测试的代码要在实现代码之前先行编写出来。TestDriven本身兼顾着“约束”和“检验”这两种职责。 NUnit名气...

    [单元测试] TestDriven.Net 3.4.2808 Personal Edition

    TestDriven.Net makes it easy to run unit tests with a single click, anywhere in your Visual Studio solutions. It supports all versions of Microsoft Visual Studio and it integrates with the best .NET ...

    TestDriven.NET-2.14.2190_Personal.zip

    TestDriven.NET是一款强大的Visual Studio插件,专注于支持单元测试,为.NET开发人员提供了一种高效、便捷的方式来执行和管理他们的代码测试。版本2.14.2190相较于之前的2.8版本,显然在功能和性能上有所提升,旨在...

    ASP.NET2.0静态页面生成技术

    在ASP.NET 2.0中,`test20080808.aspx.cs` 文件可能是一个ASP.NET页面的后台代码文件,通常包含了该页面的事件处理程序和其他业务逻辑。`.cs`后缀表明这是一个C#语言编写的类文件,与对应的`.aspx`页面文件一起工作...

    TestDriven.Net.rar

    TestDriven.Net是一款针对.NET开发环境的测试驱动开发(TDD)工具,它为Visual Studio提供了一个集成的测试运行器,使开发者能够在IDE内部方便地执行单元测试。TestDriven.Net不仅支持各种主流的.NET测试框架,如...

    TestDriven.Net3.9

    TestDriven.Net是一款强大的Visual Studio插件,主要用于支持和简化单元测试流程。该工具的主要版本是3.9,它专门设计用于增强Visual Studio 2012的开发环境,旨在为开发者提供一个无缝集成的单元测试体验。在描述中...

    测试驱动开发testdriven.net

    3. **代码覆盖率**:TestDriven.NET可以显示测试覆盖的代码部分,帮助开发者了解哪些代码未被测试覆盖,以确保全面的测试。 4. **重构友好**:在重构代码时,TestDriven.NET可以快速验证重构是否破坏了现有功能,...

    TestDriven.NET-3.0.2613_Personal_Beta2.zip

    TestDriven.NET是一款强大的测试驱动开发工具,主要用于.NET框架下的单元测试。这个版本是3.0.2613的个人版Beta2,意味着它是一个测试版本,专为开发者提供预览和反馈,以便在正式发布前改进软件。下面将详细介绍...

    TestDriven.NET-2.17

    TestDriven.NET是一款强大的单元测试插件,专为Visual Studio .NET开发者设计,提供了一种高效、便捷的单元测试体验。该工具的版本“TestDriven.NET-2.17”是其2.17系列的一个具体迭代,版本号为2240,标记为个人版...

    TestDriven.NET-2.12.2179_Personal

    TestDriven.NET是一款针对.NET平台的高效单元测试工具,版本号为2.12.2179,专门设计用于支持C#以及其他.NET语言的测试驱动开发(TDD)。这款工具的强大之处在于它能够无缝集成到Visual Studio环境中,使得开发者...

    Debugging Microsoft® .NET 2.0 Applications

    Debugging Microsoft® .NET 2.0 Applications By John Robbins ............................................... Publisher: Microsoft Press Pub Date: November 08, 2006 Print ISBN-10: 0-7356-2202-7 ...

Global site tag (gtag.js) - Google Analytics