insert指令碼產生和對測試驅動的感受

來源:互聯網
上載者:User

這幾天有些空閑,寫了個產生insert指令碼的小東東,用來給資料庫中初始化資訊。沒有包括產生表的,是因為資料庫設計工具都已經有這個功能了。這幾天也有不少關於產生sql指令碼的隨筆了,因為是自己來用,所以考慮的不多。只要實現自己想要的功能就可以了。代碼在這裡
InitInsertSqlScript.rar
寫的不好,特別是資料庫訪問上,感覺還有很大改進的餘地。考慮到表之間的主外鍵約束關係,先對錶名進行排序後再產生,在取關聯表名和判斷是否外鍵時使用字串比較,不夠安全。請大家指教,歡迎板磚。

其實寫這篇隨筆主要還是想寫寫在開發過程中使用NUnit測試的一點感受。從三個方面來說:
一:程式結構
本來介面和支援類是在一個工程中的。但是由於把測試類別單獨放在了一個工程中(從一些開源項目裡學的),工程間的引用出了問題(測試工程是dll,不能引用exe)。主介面所在的工程是exe的,為了測試就只好先把工程改成了輸出dll。後來感覺來回改還是很麻煩,就把僅有的一個表單提出來放在一個工程中。這樣整個解決方案就成了三個工程:支援庫,介面,測試。把UI和支援庫分離,這也算是單元測試對程式結構所起到的作用吧。
二:效能
剛開始寫的時候有意忽略了效能問題。例如在返回資料時直接用DataSet。在準系統都已實現後,開始作最佳化,首先把能替換的DataSet都替換成DataReader,測試時間從3.9秒縮短到3.4秒。但是這還不是關鍵的。在把拼接產生指令碼時對string的操作替換成StringBuilder後,時間一下縮短到0.9秒左右。
三:開發效率:
雖然寫測試代碼可能要花費一些時間,但是在對支援類庫經過測試後,自己更有信心,暴露了問題,提高了代碼品質,更提高了開發效率

雖然不是有意的使用測試驅動的方法,但是單元測試在開發過程中起到的作用是可以切身體會到的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.