insert脚本生成和对测试驱动的感受

发表于:2007-9-10 16:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:dahuzizyd    来源:dahuzizyd的专栏

        这几天有些空闲,写了个生成insert脚本的小东东,用来给数据库中初始化信息。没有包括生成表的,是因为数据库设计工具都已经有这个功能了。这几天也有不少关于生成sql脚本的随笔了,因为是自己来用,所以考虑的不多。只要实现自己想要的功能就可以了。代码在这里
InitInsertSqlScript.rar
        写的不好,特别是数据库访问上,感觉还有很大改进的余地。考虑到表之间的主外键约束关系,先对表名进行排序后再生成,在取关联表名和判断是否外键时使用字符串比较,不够安全。请大家指教,欢迎板砖。

        其实写这篇随笔主要还是想写写在开发过程中使用NUnit测试的一点感受。从三个方面来说:
一:程序结构
        本来界面和支持类是在一个工程中的。但是由于把测试类单独放在了一个工程中(从一些开源项目里学的),工程间的引用出了问题(测试工程是dll,不能引用exe)。主界面所在的工程是exe的,为了测试就只好先把工程改成了输出dll。后来感觉来回改还是很麻烦,就把仅有的一个窗体提出来放在一个工程中。这样整个解决方案就成了三个工程:支持库,界面,测试。把UI和支持库分离,这也算是单元测试对程序结构所起到的作用吧。
二:性能
        刚开始写的时候有意忽略了性能问题。例如在返回数据时直接用DataSet。在基本功能都已实现后,开始作优化,首先把能替换的DataSet都替换成DataReader,测试时间从3.9秒缩短到3.4秒。但是这还不是关键的。在把拼接生成脚本时对string的操作替换成StringBuilder后,时间一下缩短到0.9秒左右。
三:开发效率:
        虽然写测试代码可能要花费一些时间,但是在对支持类库经过测试后,自己更有信心,暴露了问题,提高了代码质量,更提高了开发效率

        虽然不是有意的使用测试驱动的方法,但是单元测试在开发过程中起到的作用是可以切身体会到的。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号