无论是Eclipse、JBuilder,还是JCreater,都给使用者提供了Run或者Debug一个类的功能,前提是这个类中包含一个名为“Main”的静态方法。这样,在做Java编程时,可以很方便进行调试,如果再用上JUnit,相当方便。
恕我孤陋寡闻,目前在VS.Net里还没有这样方面的功能,如果是WinForm的项目还好,但如果是Class Library项目,其中的代码就不好调试了。看到这里,您会说了,用NUnit啊。对,NUnit可以完全我的需求,但NUnit目前有几处不爽的地方:
1:项目需求编译,再由NUnit打开对应的dll文件,如果能在IDE集成就好了;
2:Debug不方便,要通过IDE附加上NUnit的进程;
3:目前正式的版本是2.2,不支持VS.Net 2005。
功能介绍及下载
废话了半天,其实就是要介绍TestDriven.NET,这是一款优秀的单元测试工具,它的好处多多,比如:
1:Free;
2:Small size,集成了Nunit2.3、MbUnit,总共才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”开头就行,不论大小写都可以,不信你试试看。