2013-07-24 154 views
5

我需要用JUnit編寫一些測試來測試我們訪問數據庫的類,有些非常簡單(選擇項目列表),其他人插入新項目,您知道基本的SQL東西。Junit:測試查詢類

現在我的問題是,在編寫測試時需要注意哪些事項?

例如: 數據庫類從表中提取項目,我可以使用有效的ID,無效的IDS來測試它,但還有什麼?

所以,總結一下:你如何最好地測試你的查詢類?

它已經有一段時間,因爲我寫的任何測試,所以我有點生鏽:)

回答

2

如果你只是測試SQL查詢,可以

  • 運行在查詢中的每一個一個成功的方案,以檢查是否有正確的語句
  • (如你所提到的)選擇無效IDS
  • 插入重複記錄(通過PK或唯一鍵)
  • 確保你不能把一個NUL l在非空字段中。
  • 刪除無效的ID(如果它失敗了呢?或者只是忽略該行不存在?)
  • 驗證任何檢查你有一列
  • 也許您有任何驗證,以防止String存儲在更短的varchar列?

我從來沒有做過比查詢的第一個要點,但我可以在測試一些額外的場景中看到一些價值。

這種類型的集成測試的一個好的做法是能夠清除數據庫並插入每次測試所需的任何數據,因爲這樣可以保證每個測試都是隔離的。如果您使用的是Java,則可以使用框架(如DBUnit)來執行此操作。 另一個好的做法是,擦掉數據庫並創建測試數據,然後在之前完成而不是之後執行每個測試。這具有如下優點:如果測試失敗,則在測試失敗時將使DB處於狀態。

您可以測試的其他東西是您在DAO級別進行的任何類型的數據轉換(例如,具有逗號分隔值列表的varchar列,並將其轉換爲List,而不是將其保留爲字符串) 。

+1

一些非常有用的指針:)如果這是最好的答案,我會接受它,但我會稍微等一下,看看是否有更多的提示進來:)但無論如何謝謝:) – darkownage