Ruby on rails Stub FactoryGirl观察者类

Ruby on rails Stub FactoryGirl观察者类,ruby-on-rails,rspec,factory-bot,Ruby On Rails,Rspec,Factory Bot,我有一个叫贝娄的女工。 因此,我尝试在基块上创建一些factoryGirl并从中继承,根据测试,它在用户类的观察器上存根一个方法。问题是,一旦它存根了一个方法,它就会为该类保留存根。正如你所看到的,我们在开始时尝试取消所有的存根,但由于并非所有的存根都是存根,我们也不能这样做。 你知道怎么处理这个问题吗 FactoryGirl.define do factory :base_user, class: User do |user| sequence(:email) {|n| "user

我有一个叫贝娄的女工。 因此,我尝试在基块上创建一些factoryGirl并从中继承,根据测试,它在用户类的观察器上存根一个方法。问题是,一旦它存根了一个方法,它就会为该类保留存根。正如你所看到的,我们在开始时尝试取消所有的存根,但由于并非所有的存根都是存根,我们也不能这样做。 你知道怎么处理这个问题吗

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

我不会把存根放在定义上。在定义中,您可以只设置属性,然后使用

Factory.stub(:user)
稍后,它将存根所有属性