2013-03-20 34 views
1

我已經分配了任務來調查我們應該如何在一個upcomming項目中執行我們的測試。可行的數據庫測試

我目前正試圖決定什麼時候我們應該對我們的SQL語句進行結構化測試。我得出的結論是,對「獲取」語句進行測試,以確保它們返回正確的數據但不測試插入,刪除或更新可能是一個好主意,因爲這可以很容易地通過在數據庫中選擇,如果缺少某些依賴關係,則會拋出外鍵的異常。

現在,我已經檢查出DBunit被用來執行這些測試,但我有一對夫婦conserns的:

1.Is可行如上所述進行測試?或者是創建這些測試並插入測試數據不值得花時間?也許這足以讓開發人員測試這個特別的?

2.看起來,爲每個測試決定適當的測試數據可能會花費很多時間。應該手動將測試數據插入到DBunit需要的flat-xml文件中(如果您讓DBunit生成預期數據,則依賴於提取該數據的SQL)。是這樣嗎?

3.是否有更好,更簡單的方法來執行數據庫測試來驗證SQL語句?

該項目將使用Hibernate,Java和一個MS SQL Server的

回答

0

可以使用DbUnit或者你可以建立該數據庫的內容編程(在每個測試)。重要的部分是讓測試框架(例如彈簧測試)在每次測試之後進行回滾。一旦你設置了環境,就很容易測試在單個事務中完成的DML(獲取,插入,刪除)。

,如果你想測試DDL(某些數據庫做交易的那之外),那麼你需要做的手工回滾或從頭開始創建一個數據庫,每次測試之前(例如在內存數據庫)。 DDL測試通常是不需要的,因爲休眠確實部分

是的:你應該測試你的查詢 - 這是值得花一些時間準備環境