0

JUnit テストを実行して、Java コードベースをテストします。各テストは、いくつかのデータを mysql データベース (場合によっては複数のテーブル) に読み書きします。テストは、その後に実行されるテストを妨害するデータを残しているようです。各単体テストの最後に、テストによって行われたすべての変更を中止/ロールバックできる可能性はありますか?

私たちは cactus フレームワークを使用して、glassfish アプリケーション サーバーで ejb をテストしています。ejb は、DB に対して読み書きできる AS 内のコードを呼び出すことができます。

DB と通信するために休止状態と jdbc を使用しています。

4

1 に答える 1

0

考えられる解決策は、各テストの後に実行できる単純なデータベース スクリプトを使用して、各テストの後にデータベースをリセットすることですが、これには多くの時間がかかります。

統合テストを実行している場合、実際の EJB を使用することになります。テストの開始時と終了時を理解させるのは複雑になるため、これについてできることはあまりありません。単純な操作の場合、例外を強制的にロールバックさせることができますが、1 つのテストで複数のトランザクションを使用する場合、これは機能しません。

于 2013-04-26T21:17:31.280 に答える