我有一個數據庫支持的應用程序,很遺憾,它的數據庫測試很少。我試圖快速有效地測試數據庫。有效地測試數據庫後端
到目前爲止,我已經學會:
- 測試的應用程序把/獲取數據到數據庫
- 使用模擬DB的測試對象/關係映射代碼
我仍然在努力實現第一點。看來,測試的唯一方法是將數據插入到真正的表中。但是用戶當然不希望看到我的測試數據。這是我目前在做的僞代碼:
begin a transaction
insert a few rows
check that no error has occurred
'select' the rows back out
check that no error has occurred, check that data out matches data in
tell the test framework that it's successful
abort the transaction
這是一個最佳實踐,或某種可怕的反模式?有更好的建議嗎?
+1,因爲我覺得你提一些好點,但我不知道我理解爲什麼'在生產測試是非常糟糕的practice'。我會認爲這是一個很好的做法 - 因爲數據庫測試的一點是驗證用戶計算機上的應用程序是否可以與用戶計算機上的數據庫交談,即所有內容都已正確安裝。 OTOH,在檢查數據庫模式是否應用程序期望的情況下,該語句對我來說是有意義的。 –
一個壞主意,你提出的原因!讓我們說測試中出了問題,你不想要軟管你的生產環境。您也不想用測試數據污染您的生產數據庫,這使得難以對生產數據執行度量標準,偶爾會導致客戶想知道發生了什麼。此外,通過測試數據庫,您可以控制內容 - 這允許您進行真正的呼叫,獲取用戶數量並對其進行測試,而數據在生產中不斷變化。 – Kane
超出評論空間。在行業最佳實踐中,至少有三種環境:生產(duh),測試(因此您可以使用已知數據在產品投入生產之前檢查更改)和開發(因爲開發人員經常在弄清楚事情的同時弄糟東西,而您不希望開發出干擾測試或更糟,生產的功能)。 – Kane