2012-02-09 13 views

答えて

0

DELETE FROM <tablename>; VACCUUM;を使用するか、テーブルを落として再作成してください。 AUTOINCREMENT列で使用されるシーケンス値をリセットする必要がある場合は、後で使用してください。

+0

これらはどれも変更を元に戻しますか? – kosa

+0

ああ、「きれいに」あなたは空を意味すると思った。データベースが空でない初期状態に戻る方法を探していますか? – Pedantic

0

This questionには正しい方向につながる回答があります。トランザクションを使用してロールバックを処理することは、私が考えると最も簡単なことです。

0

最も簡単な方法は、模擬DBを作成するには、単にテストデータをドロップしてから、テストデータをいくつか取り除くだけです。

0

最新のノートパッドサンプルアプリケーションは、このような機能を備えています。ノートパッドが使用するコンテンツプロバイダの単体テストが含まれています。これらのテストはJUnit 3に基づいているため、ユニットテストごとに setUp()メソッドとtearDown()メソッドが呼び出されます。

テストメソッドでは、コンテンツプロバイダのプライベートメソッドを使用して、基になるデータベースにテーブルをドロップし、それらを再作成します。テストクラスとコンテンツプロバイダクラスは同じパッケージ名を使用するため、プライベートメソッドがテストで参照できます。しかし、コンテンツプロバイダーの外部には表示されません。他の誰もそれを呼び出すことができず、Javadocもありません。

これで十分でない場合は、ContentProvider.call()メソッドを使用して(ContentResolver.call()を呼び出して)プロバイダを制御できます。

関連する問題