這是我的代碼的一個簡化版本:
frozen_string_literal: true
RSpec.describe MyObject do
let!(:my_object) { create(:my_object, name: 'This Name') }
let!(:my_ojbect_2) { create(:my_object_2, obj: my_object) }
describe '#my_data' do
subject { my_object.my_data }
context 'when a' do
...
...
it { is_expected.to eq expected_value }
end
context 'when b' do
...
...
it { is_expected.to eq expected_value }
end
context 'when' do
...
...
it { byebug }
end
end
end
當測驗在 byebug 處停止時,我注意到 my_object 在資料庫中被創建了多次。有沒有辦法讓 my_object 只創建一次?
uj5u.com熱心網友回復:
如果測驗物件的多個副本在測驗之間持續存在,這會給您的測驗帶來巨大的問題,并且不能依賴它們。
你必須在測驗之間有一個干凈的狀態。有很多方法可以做到這一點,但工廠、固定裝置、事務固定裝置等可能會使它變得復雜。
我個人幾乎總是最終使用資料庫清理器。
看看資料庫清理器
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/443723.html
上一篇:存根檔案存在嗎?在RSpec
下一篇:Rails嵌套包含動態類
