मैं रेल के लिए काफी नया हूं, और रेलस्टोरियल का पालन करने की कोशिश कर रहा हूं। सब कुछ ठीक हो जाता है मेरी परीक्षण जो अतीत नामित रास्तों (5.3.3)रुपये और नामित मार्ग
नहीं मिल सकता है के अलावा मेरे routes.rb:
SampleApp::Application.routes.draw do
resources :users
match '/signup', to: 'users#new'
match '/help', to: 'static_pages#help'
match '/about', to: 'static_pages#about'
match '/contact', to: 'pages#contact'
root to: 'static_pages#home'
#Commented stuff
मेरे बातें पहली बार परीक्षण (कल्पना/नियंत्रक/static_pages_controller_spec। rb):
describe "Static pages" do
subject { page }
shared_examples_for "all static pages" do
it { should have_selector('h1', text: heading) }
it { should have_selector('title', text: full_title(page_title)) }
end
describe "Home page" do
before { visit root_path }
let(:heading) { 'Sample App' }
let(:page_title) { 'Home' }
it_should_behave_like "all static pages"
end
#Other tests
spec_helper.rb सभी टिप्पणी की सामान के बिना (की तरह दिखता है)
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
end
मैं पहले से ही spec_helper में
include Rails.application.routes.url_helpers
उपयोग करने की कोशिश
Static pages Home page it should behave like all static pages
Failure/Error: before { visit root_path }
NameError:
undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_1::Nested_1:0x00000004a12210>
Shared Example Group: "all static pages" called from ./spec/controllers/static_pages_controller_spec.rb:17
# ./spec/controllers/static_pages_controller_spec.rb:13:in `block (3 levels) in <top (required)>'
, लेकिन यह
Static pages Home page it should behave like all static pages
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
# /usr/lib/ruby/1.9.1/forwardable.rb:185
करने के लिए मेरी त्रुटियों बदल दिया है: ०५३६९१३६३२१०
त्रुटियों मैं rspec से प्राप्त इस तरह सभी कर रहे हैं मैंने अपने मार्गों का नाम बदलने के विभिन्न तरीकों का भी प्रयास किया, लेकिन उनमें से कोई भी काम नहीं किया। मैं ट्यूटोरियल संस्करण पर वापस आ गया हूँ।
यदि यह वास्तव में कोई समस्या है, तो यह उबांटू 11.10 पर है, मैं रेल 3.2.1 और रूबी 1.9.2p290 के साथ हूं। आशा है कि आप मदद कर सकते हैं, मैं समाधान के लिए थोड़ी देर बिताता हूं और मुझे कोई ^^ '
यह 'कॉन्फ़िगरेशन' को छोड़कर मैंने किया है। अंश। सब कुछ अब पूरी तरह से काम करता है! आपका बहुत बहुत धन्यवाद ! – FabPelletier
यदि कोई इसे अभी तक बनाता है और अभी भी स्टंप हो जाता है, तो यह भी ध्यान देने योग्य है कि root_path (आदि) केवल आरएसपीईसी परीक्षणों के "वर्णन" ब्लॉक के भीतर "इसे" अंत "खंड" के "अंत" खंड में काम करता है । इसलिए यदि आपने फ़ंक्शन को पास किए गए पथ पैरामीटर के आधार पर "इसे" अनुभागों को संभालने के लिए फ़ंक्शंस बनाए हैं, तो आप फ़ंक्शन के पैरामीटर के रूप में root_path (आदि) को पास नहीं कर सकते हैं। – DreadPirateShawn
इसने रेल्स 4.2 डिलीकेशन चेतावनी के मेरे मुद्दे को भी तय किया है 'अस्वीकरण चेतावनी: name_routes.helpers को बहिष्कृत किया गया है, कृपया रूट_डेफाइंड का उपयोग करें? (रूट_नाम) यह देखने के लिए कि कोई नामित मार्ग परिभाषित किया गया था, इसलिए अब जब तक मैं https की प्रतीक्षा नहीं करता तब तक मेरे पास आरएसपीईसी लॉग साफ़ है : //github.com/rspec/rspec-rails/pull/1142 रिलीज होने के लिए। –