У меня есть FactoryGirl как ниже. Итак, я пытаюсь создать несколько из factoryGirl на базовом блоке и наследовать от него и в зависимости от теста. Он заглушает метод на Observer класса User. Проблема заключается в том, что он заглушает метод, который он сохраняет для этого класса. как вы можете видеть, мы попытались разблокировать все заглушки в начале, но так как не все они всегда заглушены, мы тоже не можем этого сделать. Любая идея, как справиться с этой проблемой?Stub FactoryGirl Observer Class
FactoryGirl.define do
factory :base_user, class: User do |user|
sequence(:email) {|n| "user#{n}@example.com" }
password 'password'
password_confirmation 'password'
first_name { 'Santa' }
last_name { 'Clause' }
user.after_build do |u|
[:after_create, :create_piick_user, :send_signup_email].each do |method|
begin
UserObserver.any_instance.unstub(method)
rescue RuntimeError
end
end
end
end
factory :user, parent: :base_user do |user|
user.after_build do |u|
UserObserver.any_instance.stub(:after_create).and_return(nil)
end
end
factory :user_with_welcome_email, parent: :base_user do |user|
user.after_build do |u|
UserObserver.any_instance.stub(:create_piick_user).and_return(nil)
end
end
end