SQL Server のストアド プロシージャと関数のみを使用して実装されるプロジェクトで、Test First Development を実装したいと考えています。
ストアド プロシージャと関数の単体テストの実装を簡素化する方法はありますか? そうでない場合、それらの単体テストを作成するための最良の戦略は何ですか?
SQL Server のストアド プロシージャと関数のみを使用して実装されるプロジェクトで、Test First Development を実装したいと考えています。
ストアド プロシージャと関数の単体テストの実装を簡素化する方法はありますか? そうでない場合、それらの単体テストを作成するための最良の戦略は何ですか?
それは実行可能です。テストを作成し、セットアップで db の新しいインスタンスを作成し、それにデータを与えてから、procs を実行します。正しいデータが戻ってきたように、あなたの仮定を検証してください。テストデータベースをドロップしてから、次のテストですべてやり直してください。
データベースでの単体テストは実際には大きなトピックであり、それを行うにはさまざまな方法があります。最も簡単な方法は、次のように独自のテストを作成することです。
BEGIN TRY
<statement to test>
THROW 50000,'No error raised',16;
END TRY
BEGIN CATCH
if ERROR_MESSAGE() not like '%<constraint being violated>%'
THROW 50000,'<Description of Operation> Failed',16;
END CATCH
このようにして、さまざまな種類のデータ テストを実装できます。 - CHECK 制約、外部キー制約テスト、一意性テストなど...