私はdbレイヤーを持っています。そして、db CRUD の結果をテストしたいので、すべてのテストを独立させたいので、setUp() でテーブルを作成し、tearDown() ですべてのテーブルをドロップします。では、db アクセスを個別にテストする良い方法はありますか? つまり、すべてのテストですべてのテーブルを削除する必要はありません
質問する
275 次
2 に答える
1
テスト後にロールバックされるデータベース トランザクション内でデータベース テストを実行できます。
たとえば、Java/ Spring では、テストごとにトランザクションを作成してロールバックするTestContext フレームワークを使用できます。
于 2012-10-28T08:59:59.653 に答える
1
いくつかのアプローチがあります。
「DELETE」ステートメントを使用して、各テストの後にすべてのデータを削除できます。私の知る限り、削除は遅いため、あまり好ましくないアプローチです。
テーブルが空になるように、各テストの後にテーブルを切り詰めることができます。
(私のお気に入り) 各テストの前にトランザクションを開き、テストが終了したらロールバックします (成功した場合でも!)。このようにして、テスト前の状態を db に保持します。
お役に立てれば
于 2012-10-28T09:11:39.993 に答える