听香水榭

半壁草房待明月,一盏清茗酬知音
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VS.Net下的新的单元测试工具-TestDriven.NET

Posted on 2005-09-14 08:49  清雷  阅读(2573)  评论(4编辑  收藏  举报

无论是EclipseJBuilder,还是JCreater,都给使用者提供了Run或者Debug一个类的功能,前提是这个类中包含一个名为“Main”的静态方法。这样,在做Java编程时,可以很方便进行调试,如果再用上JUnit,相当方便。

恕我孤陋寡闻,目前在VS.Net里还没有这样方面的功能,如果是WinForm的项目还好,但如果是Class Library项目,其中的代码就不好调试了。看到这里,您会说了,用NUnit啊。对,NUnit可以完全我的需求,但NUnit目前有几处不爽的地方:

1:项目需求编译,再由NUnit打开对应的dll文件,如果能在IDE集成就好了;

2Debug不方便,要通过IDE附加上NUnit的进程;

3:目前正式的版本是2.2,不支持VS.Net 2005

  功能介绍及下载

废话了半天,其实就是要介绍TestDriven.NET,这是一款优秀的单元测试工具,它的好处多多,比如:

1Free

2Small size,集成了Nunit2.3MbUnit,总共才3M

3:免配置,支持目前所有VS.Net版本,当然也包括VS.Net 2005 beta,安装完无须重新启动计算机即可使用。

4:随时可以Run/Debug一个类中的任意方法,这是本文的重点,以下会重点介绍。

获得这款软件,可以到官方网站下载,地址是“http://www.TestDriven.net”,需要简单注册一下个人信息,下载后解压缩后安装即可。

进行测试

启动任何版本的VS.Net,建立一个Class Library项目,新建一个类。为便于介绍,可以写如下的代码:

int sum=0;

for (int i=0;i<=10;i++)

{

      sum += i;

}

Console.Write(sum);

在方法里点击鼠标右键,会看到菜单里多了“Run Test(s)”和“Test With…”两项内容,如图:

先点一个“Run Test(s)”试试,会不会在IDE里看到输出的结果。

在最后一行加个断点,点“Test With…-Debugger”,是不是可以观看每一个变量的值了?不要告诉我你不知道如何调试。

这样,我们就可以随时随地运行一个方法,观察运行状态了,这一点,对于静态方法非常管用;对于需求上下文的方法,一个办法写一些专门的方法进行调试,就象Java编程里经常写的“Main()”一样,或者在该方法的头部把变量赋上值,调试完了再删除。

NUnit结合

TestDriven里集成了Nunit,可以很方便的与之结合使用。

Solution Explore里,在该类上点击鼠标右键,可以看到“Test With-NUnit”,如下图:

如果这时直接Run,会看到如下的提示:

这是因为没有在类中声明“[TestFixture]”,需要把代码修改两处:

1:加“using NUnit.Framework;”;

2:在“public class Class1”前加一行“[TestFixture]”,如果对NUnit不熟悉,可以在Google里搜索一个它的用法;

3:在需要测试的类前加一行“[Test]”。

这时再Run一下Nunit,点一下“Run”按钮,是不是能看到如下界面:

这里还有一个小秘笈,就是在第3步操作里,可以不加“[Test]”这个Attribute,只需要让方法的名称以“test”开头就行,不论大小写都可以,不信你试试看。