データベース テーブルの特定の値に従って、パッケージ化されたプロシージャの出力をテストする必要があります。そこで、次のテストを作成しました。
- データベース値を NULL に更新します
- 専念
- 値を返すパッケージ・プロシージャを実行します
- データベース値を「N」に更新します
- 専念
- パッケージ化されたプロシージャを再度実行して、別の値を返します
データベースの値はコミットされていないように見えるため、パッケージ化されたプロシージャは常に同じ値を返します。テストは次のとおりです。
!path lib/*.jar
!|dbfit.OracleTest|
!|ConnectUsingFile|DBConnections/DBConnection.properties|
|set option|fixed length string parsing|true|
|Update|my_table|
|col_value=|col_name|
|NULL|val|
|Commit|
!|Execute Procedure|pckg.proc|
|birth_date_|gender_|first_name_|last_name_|?|
|NULL|F|Rita|Rita|>>ref_cur1|
|Update|my_table|
|col_value=|col_name|
|N|val|
|Commit|
!|Execute Procedure|pckg.proc|
|birth_date_|gender_|first_name_|last_name_|?|
|NULL|F|Rita|Rita|>>ref_cur2|
!2.4. Compare expected values and actual values
!|Query|<<ref_cur1|
|j_status|
|-32|
!|Query|<<ref_cur2|
|j_status|
|-39|
|Rollback|
問題は、テスト開始前のデータベース列の値に応じて、常に同じステータスを返すことです。最初から NULL の場合、戻り値は両方とも -39 であり、最初から 'N' の場合、両方の戻り値は -32 です。
変更を永続化する方法についてのアイデアはありますか?