tSQLt のアサーションを紹介する
■はじめに
tSQLtについて引き続き勉強したことを記載していきます。
本記事ではtSQLtのアサーションについて紹介します。
■Assertions
tSQLtの公式ドキュメントに下記ページがあります。
このページではtSQLtが用意してるアサーションのストアドプロシージャと、
失敗のストアドプロシージャが記載されています。
シンタックスは公式ページを見てもらえればと思います。
AssertEmptyTable
AssertEmptyTableストアドプロシージャは、第一引数のテーブルが空かどうかをチェックします。
例ではビューの結果セットが空かどうかをチェックするコードが記載されています。
AssertEquals
AssertEqualsストアドプロシージャは、第一引数の値と、第二引数の値が一致しているかどうかをチェックします。
ドキュメントのページでは、オブジェクトの型も比較した例が記載されていてわかりやすいです。
AssertEqulasString
AssertEqualsStringストアドプロシージャは、第一引数と第二引数の文字列が一致しているかどうかをチェックします。
NullとNullではない文字列はエラーとなります。
AssertEqualsTable
AssertEqualsTableストアドプロシージャは、第一引数のテーブル名のテーブルと、第二引数のテーブル名のテーブルの中身を比較し同一の場合は成功となります。
AssertEqualsTableScheme
AssertEqualsTableSchemeストアドプロシージャは、第一引数のテーブル名のテーブルと、第二引数のテーブル名のテーブルのスキーマを比較し同一の場合は成功となります。
AssertEqualsTableはテーブルの中身を比較するのに対して、AssertEqualsTableSchemeはテーブルのスキーマを比較しています。
AssertLike
AssertLikeストアドプロシージャは、第一引数のパターンと、第二引数の値を比較し一致するパターンの場合は成功となります。
AssertNotEquals
AssertNotEqualsストアドプロシージャは、第一引数と第二引数の値が一致してない場合に成功します。
AssertObjectDoesNotExist
AssertObjectDoesNotExistストアドプロシージャは、第一引数のオブジェクトがない場合に成功します。
AssertObjectExists
AssertObjectExistsストアドプロシージャは、第一引数のオブジェクトが存在する場合に成功します。
Fail
Failストアドプロシージャは、実行された場合に失敗を返します。引数にエラーメッセージを記載することができます。
■おわりに
アサーションも多くの種類が用意されており、単体でテストの結果判定には十分なのではないかと思いました。
残りのExpectationsとIsolating dependenciesを学んだら実際の単体テストの例を記載できたらいいかなと思ってます。