在我過去參與的專案中,準備測試資料的方法各種各樣。在給一些大型企業做諮詢時,建議他們的開發團隊使用單元測試或者 api 測試來守護**。他們在編寫測試的過程中遇到的第乙個困難就是測試資料的準備。
測試資料的準備往往會遇到幾個問題:
這幾個問題都沒有唯一答案,下面就聊一下我在專案中採用過的方案,以及推薦比較好的方式。
如果是第一次編寫單元測試我們可以將業務資料庫中的資料庫結構匯出,放置到測試資源目錄下,測試啟動時通過 jdbctemplate 執行即可。很多團隊剛開始編寫測試的時候是這麼做的。
但是慢慢會發現乙個問題,業務資料的不斷更新也需要手動更新這個啟動指令碼。隨著時間的推移,人的約定總之是不可靠的,後面差異會慢慢變大,則需要在測試上 debug 的時間變長,讓編寫測試得不償失。
在業務開發過程中,我們可以使用 flyway 作為資料遷移工具,在測試中,我們可以復用業務**中的 flyway 遷移指令碼。spring boot 預設啟動就會進行資料庫遷移。如果使用的 @springbootest 則完全可以不用關心,如果使用的 @springtest 則需要手動的引入 flyway 並進行 migration 操作。
@autowired
flyway flyway;
效能測試資料準備
方法一 編寫儲存過程,用 sql指令碼方式,插入測試資料 這個方式有幾個前提條件 1 需要對該業務下所有關聯的表結構非常熟悉 2 需要對 整個業務也非常熟悉 這時需要開發協助編寫測試指令碼或者向他們學習業務和關聯的表結構,自己編寫指令碼 但是資訊 不全的情況,需要不斷嘗試,不斷除錯才能夠準備出符合要...
測試資料的準備
測試很多時候需要準備測試資料,例如基礎資料,配置資料,現有資料,動態資料等 那麼如何準備資料,如何做到真實可靠有效?一 測試資料的分類 現有資料 比如在測試一些電商站點的時候會提前插入一些商品資訊,種類資訊物流資訊等 動態資料 比如在測試電商站點的發布商品功能的時候,往往會去建立一些新的商品。我們可...
MySQL 準備測試資料 日期時間
函式描述 now 返回當前的日期和時間,格式 2020 11 11 11 11 11 curdate 返回當前的日期,格式 2020 11 11 curtime 返回當前的時間,格式 11 11 11 date 提取日期或日期 時間表示式的日期部分,date now 2020 11 11 extra...