0

Web ページの作成にテスト駆動開発を適用しようとしていますが、データベースの使用に問題があります。Cake 1.1、PHP5、および SimpleTest を使用して単体テストを開発しています。

私の問題は、次のようなテストがあることです。

  1. 直接 SQL ステートメントを使用して行を挿入します
  2. その行が挿入されたかどうかをテストします (メイン プログラムの関数を使用して)。
  3. 挿入された行を削除します。

ステップ 1 と 3 は両方とも正常に機能しますが、ステップ 2 は失敗します。

行を削除せずにテストを実行し (コメントアウトしました)、再度テストを実行した場合、最初に手順 1 を削除し (もう一度その行をコメントアウトするだけです)、テストは問題なく成功したことを理解することが重要です。

また、PHPMyAdmin で SQL ステートメントを直接 (エディターで次々と) 実行してみましたが、完全に機能します。

4

3 に答える 3

3

すべてのステップが同じトランザクションで実行されていますか?

そうでない場合、ステップ 1 がコミットされるまで、ステップ 2 はステップ 1 の結果を見ることができません。

于 2009-11-01T22:20:21.740 に答える
1

テストを試みたときに、まだコミットされていないトランザクション内で挿入が行われているように聞こえます。

サンプルコードを教えてください。

于 2009-11-01T22:29:38.210 に答える
0

ステップ 1 でトランザクションをコミットしてよろしいですか?

于 2009-11-01T22:39:22.917 に答える