私はSQLデータベースを扱うのが初めてですが、データベースのテストに直面しています。セキュリティ上の理由から、クエリや更新はストアドプロシージャを使用して行われます。SQLユニットのテストストアドプロシージャ
他のストアドプロシージャをテストするためにストアドプロシージャを使用するピアから私に提案されました。これは、自分のストアドプロシージャを単体テストするための良い解決策ですか、悪い解決策ですか?
私はSQLデータベースを扱うのが初めてですが、データベースのテストに直面しています。セキュリティ上の理由から、クエリや更新はストアドプロシージャを使用して行われます。SQLユニットのテストストアドプロシージャ
他のストアドプロシージャをテストするためにストアドプロシージャを使用するピアから私に提案されました。これは、自分のストアドプロシージャを単体テストするための良い解決策ですか、悪い解決策ですか?
私は、Visual Studioを使用して優れた解決策を見つけた:それはあなたがSQLストアドプロシージャのためのユニットテストを作成することができます Visual Studio Unit Testing
、あなたはまた、正規表現を使用してデータベースを取り込むことができます - 非常にクールなものを。
私は、どのツールがSQLステートメントまたはストアプロシージャの単体テストを実行できるか分かりません。 私は通常、そのためのテストを行うSQLスクリプトを書いています。
は時々、いくつかの例外やエラーが、その後スローされる場合は、ストアドプロシージャをチェックすることができ
IF EXISTS (SELECT * FROM XX INNER JOIN XXX ON XXXXXXXX WHERE XXX=XXX)
RAISEERROR XXXXXX
のようないくつかのassert文を書きます。
しかし、それは時間の無駄です。
私は通常、ストアドプロシージャの実行パスをすべてチェックして、主なエラーの予想ポイントをテストします。
私はTSTをSQL Serverのテストフレームワークとして非常に肯定的な結果を得て使用してきました。 それはうまく動作し、Team CityのCI環境の一部としてそれを統合することさえ可能です。
キーは、テストデータの設定方法に非常に注意が必要です。どんなテストフレームワークを選択しても、テストデータビルダパターンを必ず適用してください。そうしないと、テストリファクタリングの問題が非常に迅速に発生する可能性があります。
dbunit.orgのDbUnitは良いフレームワークです。もう1つのすばらしいツールはtsqlt.orgのTSqlUnitとtsqltです。
データベースストアドプロシージャをテストするもう1つの方法は、[DBUnit](http://www.dbunit.org/)を使用して、 – flup