0

私はdbレイヤーを持っています。そして、db CRUD の結果をテストしたいので、すべてのテストを独立させたいので、setUp() でテーブルを作成し、tearDown() ですべてのテーブルをドロップします。では、db アクセスを個別にテストする良い方法はありますか? つまり、すべてのテストですべてのテーブルを削除する必要はありません

4

2 に答える 2

1

テスト後にロールバックされるデータベース トランザクション内でデータベース テストを実行できます。

たとえば、Java/ Spring では、テストごとにトランザクションを作成してロールバックするTestContext フレームワークを使用できます。

于 2012-10-28T08:59:59.653 に答える
1

いくつかのアプローチがあります。

  1. 「DELETE」ステートメントを使用して、各テストの後にすべてのデータを削除できます。私の知る限り、削除は遅いため、あまり好ましくないアプローチです。

  2. テーブルが空になるように、各テストの後にテーブルを切り詰めることができます。

  3. (私のお気に入り) 各テストの前にトランザクションを開き、テストが終了したらロールバックします (成功した場合でも!)。このようにして、テスト前の状態を db に保持します。

お役に立てれば

于 2012-10-28T09:11:39.993 に答える