2012-12-25 37 views
5

मैं rspec के परीक्षण के लिए एक नमूना आवेदन बनाने रहा हूँ, और मैं इसके बाद नीचे कदम Gemfile में:सेटअप Rspec और Capybara रेल में करने में असमर्थ 3.2

gem "rspec-rails", :group => [:test, :development] 
group :test do 
    gem "factory_girl_rails" 
    gem "capybara" 
    gem "guard-rspec" 
end 

तो नीचे दिए गए चरणों निष्पादित:

  1. बंडल।
  2. रेल जी rspec: स्थापित करें।
  3. mkdir spec/समर्थन spec/मॉडल spec/routing।

जोड़ा गया मेरी spec_helper फ़ाइल

बनाया के रूप में नीचे एक नमूना परीक्षण के लिए "capybara/rspec की आवश्यकता होती है":

require 'spec_helper' 
describe "Users" do 
    describe " List users" do 
    it "List all users" do 
     get users_path 
     page.has_content?('List Users') 
    end 
    end 
end 

लेकिन यह काम नहीं करता है, नीचे दिए गए त्रुटि मिल रही है


undefined local variable or method `page' 

* मुझे संदेह है कि मैं capybara को ठीक से कॉन्फ़िगर नहीं किया गया था, मुझे capybara को कॉन्फ़िगर करने का उचित तरीका बताएं।

उत्तर

5

गॉट सहायक विशिष्ट जानकारी के अनुसार

config.include Capybara::DSL 
+1

अगर यह आपका समाधान था तो कृपया इस उत्तर को स्वीकार करें। मेरी राय यह है कि आपके ** spec/** निर्देशिका की संरचना में कैपिबरा 2.0 और आरएसपीसी की अपेक्षा रखने के लिए, आप अपनी कॉन्फ़िगरेशन को संशोधित करने से बेहतर होंगे; विवरण के लिए मेरे उत्तर में दो लिंक देखें। –

9

चूंकि आप अपने Gemfile में Capybara के लिए एक संस्करण निर्दिष्ट नहीं किया है capybara डीएसएल सहित के बाद काम करना, मुझे लगता है कि आप संस्करण >= 2.0, किसी भी है कि जिसका मतलब है कि मिल गया है page का उपयोग करने वाले परीक्षण spec/सुविधाओं निर्देशिका के अंतर्गत जाना चाहिए।

अधिक जानकारी के लिए निम्न लिंक पर एक नज़र डालें:

आप एक कल्पना/सुविधाओं निर्देशिका का उपयोग नहीं करना चाहते हैं, तो आप चाहिए feature के रूप में एक परीक्षण को निम्न तरीके से चिह्नित करने में सक्षम हो:

require 'spec_helper' 
describe "Users" do 
    describe " List users", type: :feature do 
    it "List all users" do 
     get users_path 
     page.has_content?('List Users') 
    end 
    end 
end 
+2

मेरी टेस्ट फाइलों को spec/request से ले जा रहा है -> spec/features मेरे लिए काम करते हैं। यात्रा पर कोई और त्रुटि नहीं है। धन्यवाद! – prodigerati

0

इसके बाहर की जाँच के एकीकरण परीक्षण के लिए नए Capybara डीएसएल (ध्यान दें सुविधाओं निर्देशिका) के लायक:

# spec/features/user_list_spec.rb 
require 'spec_helper' 

feature 'User list' do 
    scenario 'List all users' do 
    visit users_path 
    expect(page).to have_content 'List Users' 
    end 
end 

मैं, का उपयोग कर RSpec 2.0 उम्मीद वाक्य रचना Capybara डीएसएल के साथ End-to-end testing with RSpec integration tests and Capybara पर कुछ विस्तृत जानकारी के साथ एक ब्लॉग पोस्ट में लिखा था feature/scenarios के लिए।

0

आप इसे अपने spec_helper में भी जोड़ सकते हैं।आरबी:

require 'capybara/rspec'