gpt4 book ai didi

ruby-on-rails - 跳过 Factory Girl 和 Rspec 的回调

转载 作者:行者123 更新时间:2023-12-01 23:10:39 25 4
gpt4 key购买 nike

我正在测试一个带有创建后回调的模型,我只想在测试时在某些情况下运行该回调。如何跳过/运行工厂的回调?

class User < ActiveRecord::Base
after_create :run_something
...
end

工厂:
FactoryGirl.define do
factory :user do
first_name "Luiz"
last_name "Branco"
...
# skip callback

factory :with_run_something do
# run callback
end
end

最佳答案

我不确定这是否是最好的解决方案,但我已经成功地实现了这一点:

FactoryGirl.define do
factory :user do
first_name "Luiz"
last_name "Branco"
#...

after(:build) { |user| user.class.skip_callback(:create, :after, :run_something) }

factory :user_with_run_something do
after(:create) { |user| user.send(:run_something) }
end
end
end

无回调运行:
FactoryGirl.create(:user)

运行回调:
FactoryGirl.create(:user_with_run_something)

关于ruby-on-rails - 跳过 Factory Girl 和 Rspec 的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8751175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com