NUnit 真的好用,可以有效的提高软件的质量。不过我人比较懒,感觉写测试用例比较无趣,特别是是做企业应用的,DAO和BO都包含CRUD等方法,写测试用例很大部分是重复劳动。
有没有工具可以自动生成被测试类的各个方法的测试用例?上星期我带着这样的需求找遍了整个Internet,结果找到两个。一个是sourceforge.net上的SkeletonNUnit,但很可惜它一直没有发布任何版本。还有一个忘记也在哪,是用vs.net的宏实现的,但我用vs.net 2003无法编译通过,最后没办法,唯有自己动手,终于写成了,现在放到网上供大家use for free.特性包括:
生成完整的类的方法的调用,调用参数被赋值,而不是null,如果参数是非基元的类的一个对象,则该对象的成员也被赋值。 可以输出到一个TextBox,或生成源程序文件。可以生成整个module,整个class,或单个方法的test case.支持C#, VB.Net, JScript, Managed C++ and J#. .....比如有一个被测试的方法声明如下:
public void Insert(CountryInfo countryInfo)
如果选择为单个方法生成代码的话,则NUnitPartner可以生成如下代码
namespace Adex.InterBaseDAL.Test {
using System;
using NUnit.Framework;
using Adex.InterBaseDAL;
using Adex.Model;
[TestFixture()]
public class TestCountry {
[Test()]
public virtual void TestInsert() {
Country __Country = new Country();
CountryInfo __countryInfo = new CountryInfo();
__countryInfo.country_code = "country_code";
__countryInfo.country_name = "country_name";
__Country.Insert(__countryInfo);
}
}
}
程序演示如下:
1. 打开一个assembly
2. assembly内的所有public class和它们的public方法将会显示如下,这时你可以选定tree view 中的一个节点生成测试用例。
3.生成结果如下:
如果上面的图显示不出来,可以看这里http://www.freewebs.com/edwinyeah/Usage.htm
大家可以去http://www.freewebs.com/edwinyeah/ 下载,现在还是beta版,希望大家把测试的结果告诉我。另外我没有制作 MSI安装程序的经验,不知道所做的安装程序是否完整,不过如果你装用.net framework 1.1的话应该没问题。