how to skip callback in rspec
當寫了一個 callback 導致整個 spec 爆炸時,可以使用 skip_callback
method 讓 spec 恢復正常
# model
after_commit :generate_zip
#factory
after :build do |post|
post.class.skip_callback(:commit, :after, :generate_zip, raise: false)
end
如果要針對該 callback 進行測試時,可以
# factory
factory :post_with_generate_zip do
after :create do |post|
post.send(:generate_zip)
end
end
用法
create(:post_with_generate_zip)