2009-06-24 2 views
5

Oracleデータベースのメモリ内スタブとしてSQLiteを使用することを考えています。すべてのDALコマンドをSQLiteに簡単に送ることができますが、各テストメソッドのデータをどのように簡単に埋め込むべきかを今思っています。
各メソッドは、必要なテーブルを作成し、特定のテストの行を挿入することで開始する必要がありますか? Fixture SetUp段階でデータをメモリに取り込む必要がありますか?他の方法がありますか(いくつかのファイルから読み込むのと同じですが、次の読みが同じになるように変更を破棄します)?
おそらく、通常のスタブを使用してdbをスタブし、必要に応じてローカルに作成されたobejcts(DataSetsとDataTables)を返す必要がありますか?私はこれを試してみることを考えましたが、このようにして渡す実際のクエリをテストすることはなく、SQL selectを実行する単体テストメソッドにしようとしています。私はクエリの構文と妥当性もテストしたい。ユニットテストのためにメモリにSQLiteを入れる

これに関するベストプラクティスはありますか?それとも良いアイデアですか?

答えて

2

SQLite-Db-Fileをバックアップするのはどうですか?

SQLiteの良い点は、dbファイル全体を必要なだけ頻繁にコピーできることです。 SQLファイルを使用して、一部のdbファイルにデータを取り込むこともできます。私はあなたの問題を完全には理解していませんが、データベースファイル(テンプレートとして)と(オプションで)いくつかのSQLファイルが必要に応じてテーブルを埋めるために非常に難しいテストの問題で十分です。

SQLファイルは、単純なファイルをダンプしたり、不要なエントリを削除(オプション)したり、不要なエントリを追加したりすることで簡単に作成できます。

+0

私はスタートデータを含むファイルを保持する必要があり、テストごとにそれをコピーしてsqliteで開くべきだと思いますか? 特定のクエリが1行または別の特定の値を返す理由が明白でないので、テストが判読不能になることが懸念されます。読者は常に入力ファイルを確認する必要があります。 それは問題ではありませんか? –

+0

こんにちはノアム、もちろんそれはあなたが持っているテスト環境とあなたのニーズが何であるかによって異なります。 dbファイル全体を格納すると、複雑なテスト環境をコードですべて実装する必要がなくなります。より読みやすくするために、毎回ダンプファイルからdbファイルを作成することもできます。ダンプファイルは読みやすくなります。あなたが* all *コードでそれをしたいとき、それはそうです - あなたはコードですべて終わるでしょう。 – Juergen