2017-09-19 137 views
0

我看到人們創建測試,如基本的SQL功能JUnit測試:爲什麼你需要單元測試基本的SQL功能?

插入1行插入表

選擇,從該行的變量是正確檢索。

我不明白爲什麼有必要測試「如果SQL工作」。

您通常用來開發SQL的路徑是,您使用數據將數據寫入數據庫,並檢查結果是否符合您的預期。你可以進一步驗證你的SQL對付更多的數據,直到你確信你已經覆蓋了足夠多的邊緣案例。

這個測試級別不夠徹底嗎?這些基本的Junit測試如何與這種方法進行比較?

+0

單元測試有時可能是一場宗教鬥爭。有些人堅持追求100%的代碼覆蓋率目標,即使是以犧牲商業成本爲代價。與程序員可能做的其他事情相比,某些組件不包含任何有意義的邏輯,測試它們的價值非常低。另一方面,我確實發現自己在那些宕機時間超過噸的項目上,我想,呃,爲什麼這不是? – David

+0

如果涉及到數據庫,我會稱之爲集成測試。如果你有一個單元測試,你寧願測試運行一個簡單的查詢在數據庫驅動上創建正確的調用。 –

回答

0

這似乎有點緊張,

總的來說,我認爲這可能是合理的,以測試這就是簡單,以保證如果他們變得更加複雜,小心不要破壞其他的東西。編寫測試被認爲是一種文檔形式。我希望這個調用只能帶回我請求的一行SQL。如果有人試圖在那裏放置一些邏輯,希望單元測試會中斷,他們會考慮他們正在做的事情可能會破壞依賴於它的其他代碼。

+0

顯然,我需要測試是否有人對sql或基礎表進行了任何更改。因此,測試每個列是從查詢返回的,測試外鍵約束,測試id是按預期生成的。 – Jonathan