在做事务的过程中,接触了单元测试,利用Nunit对自己写的方法进行单元测试,可以提高自己提交的代码的质量。在这次实践的过程中让我感受到了单元测试的重要性,由于接触单元测试的时间还很短,了解的东西还是很肤浅,先进行总结,以后继续加深理解并应用。
1. 首先,在编写测试类之前,必须为项目添加指向nunit.framework.dll的引用,否则无法找到命名空间。步骤为:在资源浏览器中右击引用,然后选择添加引用NUnit.framework组件,在添加引用对话框中按选择和确认按钮。接着创建一个测试类,并在测试类中写测试函数。测试类前面加上[TestFixture],测试函数前面加上[Test],只有用这两个记号标记的类和方法才能显示在NUnit的任务列表中。NUnit提供了一组丰富的断言,这些断言作为Assert类的静态方法,也可以调用自己要测试的函数,如:
Assert.AreEqual("宝贝id不能为空", auctionMan.modifyTimeByAuctionId(null, DateTime.Parse("2009-2-11 10:37:05")));
Assert.AreEqual("宝贝id不能为空", auctionMan.modifyTimeByAuctionId("", DateTime.Parse("2009-2-11 10:37:05")));
Assert.AreEqual("宝贝id不是位", auctionMan.modifyTimeByAuctionId("d56d46d654d6", DateTime.Parse("2009-2-11 10:37:05")));
auctionMan.modifyTimeByAuctionId("f6f469edf3663eba41ca9bb60a9476", DateTime.Parse("2009-2-11 10:37:05"));
auctionMan.modifyTimeByAuctionId("88ee0cbc1db1390c0f35e1a549a76862","");
auctionMan.modifyTimeByAuctionId("88ee0cbc1db1390c0f35e1a549a76862", "2009-1-10 16:37:05");
2.其次启动外部调试工具为Nunit,然后启动调试,点击运行后,如图所示:
11
3.单元测试出问题后,要进行调试,排除bug。我们在测试函数中调用待测试的函数,有些是测试正常流的,有些是测试异常流的,正常流的测试应该是运行通过的,异常流的测试是抛异常的。但是如果正常流抛出异常,就应该进行定位,找出是代码哪里出错,这时可以设置断点进行跟踪,当运行到断点后,进行逐条代码的运行,可以找出运行到哪一行代码,Nunit会报错,同时可以把鼠标放在变量上方,查看程序运行时,变量内存的值,从而跟踪程序运行是否正确,如图:
31 21