【云圖說】第235期 DDS讀寫兩步走 帶您領略只讀節點的風采
773
2025-03-31
2.5.9 如何處理數據庫的訪問
目前,許多軟件系統都包含(依賴)數據庫系統,將大量的對象和數據長期存儲到數據庫中,從而可以方便地從數據庫查詢這些對象和數據,當系統被關閉以后,這些對象和數據也不會丟失。
一個很重要的問題是:在單元測試期間,我們應該如何處理數據庫的訪問?
我對這個問題的第一個也是最重要的建議是:能不使用數據庫進行單元測試,就不使用數據庫進行單元測試。
—Gerard Meszaros, xUnit Patterns
在單元測試過程中,數據庫可能會引起各種各樣的問題。例如,如果許多單元測試使用同一個數據庫,那么,這個數據庫就會趨向于一個大的集中式的存儲系統,這些單元測試必須為不同的目的而共享這個數據庫。而這種共享,可能會對本章前面討論過的單元測試的獨立性產生不利的影響,可能很難保證每個單元測試所需的前提條件。一個單元測試的執行,可以通過共享的數據庫對其他的單元測試產生不好的影響。
另一個問題是,數據庫的存儲速度是緩慢的。訪問數據庫的速度比訪問計算機內存的速度要慢得多。與數據庫交互的單元測試往往比完全不依賴于數據庫的單元測試慢得多。假設你有幾百個單元測試,每個單元測試需要額外的平均500毫秒的時間,這很有可能是由于查詢數據庫導致的。總之,訪問數據庫的單元測試比沒有訪問數據庫的單元測試要多花費幾分鐘的時間。
我的建議是模擬數據庫(參見本章后面5.2.12節“測試替身”),只在內存中執行所有的單元測試。不要擔心,如果系統中存在數據庫的使用,那么,在系統集成和系統測試級別會測試數據庫
C++ c++
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。