2011-02-03 115 views
2

是否有一種基於sql存儲過程的自動化/生成模擬或存根的簡單方法?創建模擬存儲過程

我試圖涵蓋的情況是,在開發過程中對某個proc進行更改時,即某人添加了所需的輸入參數,然後我希望未使用所需參數更新的測試失敗。

+0

就我個人而言,我會測試實際存儲的proc(在開發/測試環境中)。這將是一個集成測試(擊中數據庫),而不是單元測試,並可能每天運行。 – TrueWill 2011-02-03 23:29:48

回答

1

雖然自動化程度較低,但另一種方法是創建一個包含您感興趣的存儲過程的一組執行語句的腳本。通過運行這些腳本,您可以捕獲那些在更改參數時失敗的腳本。你也可以編寫腳本的EXEC存儲過程位MS SQL

例如

exec [DATABASE].dbo.[StoredProc] parameter1, parameter 2 

這將不提供檢驗結果的機制。爲了更全面的方法,你可以看看Simple-Talk時事通訊中使用c#和NUnit構建測試工具的例子。

"Close those Loopholes - Testing Stored Procedures"

0

一種解決方案是編寫測試來驗證您的存儲過程接受的參數數量。這將比單純的單元測試更像集成類型測試,但它會解決你的問題。

0

您可以生成通過檢查INFORMATION_SCHEMA.PARAMETERS

如果這樣的測試存儲過程運行sp_recompile調用存儲過程(或許與虛擬變量)的測試中,它應該失敗,因爲編譯參數數量不正確。