iT邦幫忙

0

【gem】database_cleaner 為你的測試數據做清理

  • 分享至 

  • xImage
  •  

在跑測試程式的時候,不免會遇到資料殘留導致數據計算錯誤的情況,也就是程式碼其實是正確的,只是因為之前跑了其他測試,在測試的資料庫已經留有一些資料,導致最後統計的時候出了問題,跑不過測試。這時使用 database_cleaner 這個gem可以協助解決這個狀況。

那麼我們便開始吧~

STEP 1 首先先將這個 gem 加入 Gemfile

group :development, :test do
  gem 'database_cleaner', '~> 2.0', '>= 2.0.1'
end

STEP 2 檢視文件,搜尋 RSpec

https://ithelp.ithome.com.tw/upload/images/20220411/20147393Fp5DdEq4AH.png

STEP 3 複製以下片段至 /spec/rails_helper.rb

config.before(:suite) do
  DatabaseCleaner.strategy = :transaction
  DatabaseCleaner.clean_with(:truncation)
end

config.around(:each) do |example|
  DatabaseCleaner.cleaning do
    example.run
  end
end

https://ithelp.ithome.com.tw/upload/images/20220411/20147393lfEex3aHI4.png

STEP 4 修改程式碼

如果執行測試碼還是無法通過,將 :suit 改成 :each , 確保先前的數據每一筆都確實清除
https://ithelp.ithome.com.tw/upload/images/20220411/20147393L5nVXHncQe.png

參考資料:https://github.com/DatabaseCleaner/database_cleaner/


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言