2009-06-24 48 views
5

我正在考慮在我的Oracle數據庫中使用SQLite作爲內存存根。我可以很容易地將我所有的DAL命令指向SQLite,但我現在想知道如何輕鬆地爲每個測試方法填充數據。
每個方法應該通過創建所需的表格並插入特定測試的行開始?我應該在Fixture SetUp階段填充內存中的數據嗎?有沒有其他的方式(像從某個文件中讀取,但放棄更改,以便下一次讀取將相同)?
也許我應該用一個正常的存根來存儲數據庫,並在需要時返回本地創建的對象(DataSet和DataTables)?我想過嘗試這樣做,但這樣我就不會測試傳遞的實際查詢,並且我試圖單元測試執行SQL選擇的方法。我想要測試查詢的語法和有效性。在內存中填充SQLite進行單元測試

有關這方面的最佳實踐?或者只是好主意?

回答

2

如何備份SQLite-Db-File?

有關SQLite的好處是,您可以隨意複製整個數據庫文件。你也可以讓SQL文件用數據填充一些數據庫文件。我完全不理解你的問題,但是用db文件(作爲模板)和(optionaly)的混合體,根據需要填充表的一些SQL文件應該足以滿足非常困難的測試問題。

SQL文件也可以通過轉儲簡單文件和(可選)刪除不需要的條目或添加其他條目來輕鬆創建。

+0

所以你認爲我應該保留一個包含我的開始數據的文件,並且對於每個測試複製它,並用sqlite打開它? 恐怕會使測試無法讀取,因爲某些查詢返回1行或其他特定值的原因並不明顯。讀者必須始終檢查輸入文件。 這不是問題嗎? – 2009-06-25 06:53:59