0
我有一個FactoryGirl作爲波紋管。 因此,我嘗試在base block上創建少數factoryGirl,並從中繼承,並根據測試在User類的Observer上存根方法。問題是一旦它保留了一個方法,它就會保留該類的存根。正如你所看到的,我們試圖在開始的時候把所有的殘骸都取消掉,但因爲並不是所有的東西總是被殘留下來,所以我們也不能這樣做。 任何想法如何處理這個問題?存根工廠女子觀察員類
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