2011-06-03 14 views
28

मेरी spec_helper.rb में इतना है कि मैं वास्तव में मेरी नियंत्रक उपयोगकर्ता की आवश्यकता है कि प्रमाणीकृत करने का परीक्षण कर सकते मैंRspec 2 config: प्रकार प्रकार

config.include Devise::TestHelpers, :type => :controller 

है। हालांकि, अनुरोधों में एक ही कक्षा के लिए नमूना भी साइन इन करने की आवश्यकता है या परीक्षण विफल हो जाएंगे। मैंने

config.include Devise::TestHelpers, :type => :request 

लेकिन यह भी काम नहीं करता है। मुझे यह नहीं लगता कि मैं किस प्रकार के विकल्प आरएसपीईसी में पास कर सकता हूं या विधियों का विस्तार कर सकता हूं। मुझे लगता है: मॉडल और: दृश्य वहां होगा लेकिन अन्य मैं पूरी तरह से अनिश्चित हूं। मुझे क्या उपयोग करना चाहिए ताकि मेरे अनुरोध spec पास हो सकें और क्या विभिन्न प्रकारों की एक सूची है: टाइप?

+0

मैं एक ही सवाल है। कभी इसे समझते हैं? – Karl

उत्तर

27

यह प्रतिबद्धता :type विकल्प को स्पष्ट करने में मदद करनी चाहिए।

https://github.com/rspec/rspec-rails/commit/fc5cdbb603f0e66f9f3d19a0a60a775e124fb218

:type => :request मान्य है, तो मैं अनिश्चित क्यों अपने परीक्षण असफल रहे हैं रहा हूँ।

कौन सी निर्देशिका में आपके एकीकरण परीक्षण हैं? आमतौर पर, वे spec/requests या संभवतः spec/integration में स्थित हैं।

आप डेविस :: टेस्टहेल्पर को शामिल करने के लिए निर्दिष्ट करने के लिए एक और विकल्प का उपयोग कर सकते हैं; विकल्प :example_group है:

config.include Devise::TestHelpers, :example_group => { 
    :file_path => config.escaped_path(%w[spec (requests|integration)]) 
} 

अब, वसीयत :: TestHelpers उदाहरण समूह शामिल हैं जिनके फ़ाइल निर्दिष्ट पथ के भीतर है में शामिल किया जाएगा।

सरणी सदस्य (requests|integration) को फ़ोल्डर नाम के साथ प्रतिस्थापित करना सुनिश्चित करें जहां आपका एकीकरण परीक्षण स्थित है।

+0

उत्कृष्ट। यह नई spec/सुविधाओं निर्देशिका के लिए मैक्रोज़ फ़ाइल शामिल करने में मदद करेगा जो Capybara 2.x का उपयोग करना पसंद करता है। – sockmonk

+0

config.escape_path नवीनतम rspec में काम नहीं करता है, मैंने 'config.include रेकैकस्टेलपर' का उपयोग किया है, example_group => {: file_path =>% r (spec/api)} ' – Calin

4

हो सकता है कि बहुत देर हो चुकी है, लेकिन किसी को भी यह की जरूरत है, :feature के प्रकार को बदलने के लिए मेरे लिए काम किया:

config.include Devise::TestHelpers, :type => :feature 
संबंधित मुद्दे