不動の鳥の勉強記録

時間があるときに勉強したことをメモします。

tSQLt のアサーションを紹介する

■はじめに

tSQLtについて引き続き勉強したことを記載していきます。
本記事ではtSQLtのアサーションについて紹介します。

■Assertions

tSQLtの公式ドキュメントに下記ページがあります。

tsqlt.org

このページでは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を学んだら実際の単体テストの例を記載できたらいいかなと思ってます。