2012-02-27 2 views
0

googletestフレームワークに、テストが失敗した後でもデータをクリアできるメカニズムがありますか(コードは例外をスローし、テストが失敗した場合には。データベースからデータを削除するC++ルーチン

ありがとう!

+0

あなたはどのテストランナーを使用していますか? –

+0

私はgoogletestを使用しています – user1065969

答えて

0

SQLiteのは、単一のファイルから動作するため、あなたはどこにあらかじめ設定されたデータベースファイルをコピーするために、テスト・フィクスチャでSetUp()を使用することができますプログラムは、データベースが「ランタイム」データベースファイルを上書きすることを期待しています。すべてのテストの前にの前にを事前に設定してください。

このようにして、すべてのテストで完全に新しいデータベースが得られます。データベース作成スクリプトを実行せずに、すべてのテーブルで初期化し、必要に応じて基本データを初期化します。それはテストのスピードを速く保ちます。

+0

ありがとう!テストケースが実行を完了した後にteardown()が呼び出されることを読んでいます。テストケースが失敗しても呼び出されますか?それとも、次のテストに進むだけですか? – user1065969

+0

@ user1065969テストケースがテストランナーをクラッシュさせない限り、TearDownを呼び出す必要があります。問題は、あなたがテストでメモリ破損を引き起こした場合、あなたが "間違った"メモリを上書きした場合、TearDownも失敗することです: -/ –

+0

本当にありがとうJoa ..本当に役に立ちました! – user1065969

2

を実行し、一時、in-memory databaseのテスト。

+0

ありがとうlarsmans。しかし、私は現在、sqliteデータベースの単体テストの作成に取り組んでいます。 – user1065969

+0

@ user1065969:メモリ内コピーでテストを実行できますか? –

+0

はい私はできるです – user1065969

関連する問題