utPLSQLの使い方

求人

PLSQLのテストを自動化してくれるのがutPLSQLです。

環境設定が必要ですがその辺はわかりません。

utPLSQLの使い方は「ut_」で始まるパッケージ、パッケージボディを作成します。例えばut_TESTPROCEDUREなどにします。

パッケージ部にut_setup,ut_teardownを宣言する必要があります。

ut_setupは、複数あるテストプロシージャの一番先頭で1回だけ実行されます。

反対にut_teardownは、テストプロシージャの最後に1回だけ実行されます。

パッケージの作成例です。

テストは各プロシージャで行いますが、パッケージ部に記述しているプロシージャのみテストが実行されます。

ボディ部に書いていても、パッケージ部に記述していないプロシージャはテストされません。

そのため、一時的にテストしたくない場合はパッケージ部のプロシージャ宣言をコメントアウトします。

作成したutPLSQLを実行する方法ですが、sql*plusで実行する場合、以下のように実行します。

第一引数はパッケージ名の「ut_」を除いた部分を指定します。第二引数はリコンパイルしないようにFALSEとしています。

テストに成功した場合、「SUCCESS」と表示され、失敗した場合「FAILURE」と表示されます。

各テストプロシージャで検証を行う方法ですがいくつか知っている範囲で記述します。

  1. 変数がnullであるかどうか
    utp.utassert.isnull(‘タイトル’,変数);
  2. 変数が期待値であるかどうか
    utp.utassert.eq(‘タイトル’,変数,期待値);
  3. 2つのテーブルが等しいかどうか
    utp.utassert.eqtable(‘タイトル’,テーブルA,テーブルB);
  4. 2つのクエリー結果が等しいかどうか
    utp.utassert.eqquery(‘タイトル’,sql文,sql文);
  5. 不明
    utp.utassert.this

上記を使用してテストをします。

eqtableとeqqueryは同じように思いますが、eqtableで更新日付や登録日付などがあると2つのテーブルを比較しても時間が異なるためエラーとなります。

そういった場合にeqqueryを使用してsql文を記述し、更新日付や登録日付を抜いたsql文を記述すれば、データの比較が行えます。

パッケージボディの例です。

関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
Python3.6,Djangoを勉強中です,Javaは少し飽きてしまってます–;
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくば、我に七難八苦を与えたまえ」です^^

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA