0

データベース テーブルの特定の値に従って、パッケージ化されたプロシージャの出力をテストする必要があります。そこで、次のテストを作成しました。

  1. データベース値を NULL に更新します
  2. 専念
  3. 値を返すパッケージ・プロシージャを実行します
  4. データベース値を「N」に更新します
  5. 専念
  6. パッケージ化されたプロシージャを再度実行して、別の値を返します

データベースの値はコミットされていないように見えるため、パッケージ化されたプロシージャは常に同じ値を返します。テストは次のとおりです。

!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 です。

変更を永続化する方法についてのアイデアはありますか?

4

1 に答える 1

0

さて、私は答えを得ました。それは、変更する必要があるということです

|更新|my_table|

なる部分

!|実行|my_table セットを更新 .....|

そして、私は必要ありません

|コミット|

于 2015-08-04T09:57:14.223 に答える