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秒左右。
三:开发效率:
        虽然写测试代码可能要花费一些时间,但是在对支持类库经过测试后,自己更有信心,暴露了问题,提高了代码质量,更提高了开发效率

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


评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2020, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道