我是使用SQL數據庫的新手,但遇到了測試我的數據庫的問題。出於安全原因,任何查詢或更新都是通過存儲過程完成的。SQL單元測試存儲過程
同行建議我使用存儲過程來測試其他存儲過程。這是對我的存儲過程進行單元測試的好的或不好的解決方案,以確保他們正在做他們應該做的事情嗎?
我是使用SQL數據庫的新手,但遇到了測試我的數據庫的問題。出於安全原因,任何查詢或更新都是通過存儲過程完成的。SQL單元測試存儲過程
同行建議我使用存儲過程來測試其他存儲過程。這是對我的存儲過程進行單元測試的好的或不好的解決方案,以確保他們正在做他們應該做的事情嗎?
我發現使用Visual Studio的最佳解決方案: Visual Studio Unit Testing
它允許你創建SQL存儲過程的單元測試,你還可以使用正則表達式填充數據庫 - 非常酷的東西。
我不知道哪個工具可以對SQL語句或存儲過程執行單元測試。 我通常會編寫SQL腳本來爲此做一個測試。
有時候寫一些斷言語句,如
IF EXISTS (SELECT * FROM XX INNER JOIN XXX ON XXXXXXXX WHERE XXX=XXX)
RAISEERROR XXXXXX
如果一些例外或錯誤拋出,那麼你可以檢查存儲過程。
但是這是浪費時間。
我通常會在大多數時間檢查存儲過程的所有執行路徑,並只測試主要的錯誤預期點。
我一直在使用TST作爲SQL Server的測試框架,結果非常好。 它運行良好,我甚至可以將它作爲Team City中CI環境的一部分進行整合。
關鍵是要非常小心如何設置您的測試數據。無論您選擇哪種測試框架,都一定要應用測試數據生成器模式。如果你不這樣做,你可能會很快得到一些測試重構問題。
來自dbunit.org的DbUnit是一個很好的框架。另一個很棒的工具是TSqlUnit和tsqlt.org的tsqlt。
另一種測試數據庫存儲過程的方法是使用[DBUnit](http://www.dbunit.org/) – flup 2013-04-21 00:21:19