2010-10-18 13 views
12

मेरे पास rails3 ऐप है जिसमें कुछ पर्यवेक्षक हैं। मैं अपने जीवन के लिए यह नहीं समझ सकता कि इन्हें मेरे आरएसपीईसी परीक्षणों के लिए कैसे बंद किया जाए!रेलवे में कोई पर्यवेक्षकों के साथ rspec कैसे चलाएं 3?

उत्तर

5

दो विकल्प हो सकता है:

  1. No peeping toms
  2. अपने test.rb पर्यावरण के लिए निम्न जोड़ें: config.active_record.observers = []
30

no_peeping_toms इच्छा उत्पादन प्रतिवाद चेतावनी जब रेल के साथ 3.1+ इस्तेमाल किया। वर्तमान में इन बहिष्करण चेतावनियों को हटाने के लिए खुला है, हालांकि gem is not necessary with Rails 3.1+। रेल 3.1 को सक्रिय मॉडेल (और इसलिए ActiveRecord) में सक्षम करने की क्षमता और disable पर्यवेक्षकों में जोड़ा गया।

आप सभी ActiveRecord-वंशज मॉडलों पर सभी पर्यवेक्षकों को बंद करने के spec_helper में निम्नलिखित लाइन डाल कर सकते हैं:

# spec/spec_helper.rb 
... 
RSpec.configure do |config| 
    ... 
    config.before do 
    ... 
    ActiveRecord::Base.observers.disable :all # <-- Turn 'em all off! 
    end 
end 

आप उन्हें पीठ पर चुनिंदा के साथ अपने चश्मा में कार्रवाई लपेटकर द्वारा उनके व्यवहार का परीक्षण करने के बदल सकते हैं enable विधि।

# spec/models/foo_observer_spec.rb 
describe FooObserver do 
    subject { FooObserver.instance } 

    it 'notices when new Foos are created' do 
    subject.should_receive(:after_create) 

    Foo.observers.enable :foo_observer do # <- Turn FooObserver on 
     Foo.create('my new foo') 
    end         # <- ... and then back off 
    end 
end 
+0

'Foo.observers.enable' की ओर इशारा करते – iRonin

+0

आपका स्वागत है के लिए धन्यवाद! –

संबंधित मुद्दे