2013-07-14 1 views
0

Il est mon requests/profiles_pages_spec.rb:current_path méthode non définie ou capybara variables

require 'spec_helper' 

describe "ProfilePages" do 

subject { page } 

describe "edit" do 
    let(:user) { FactoryGirl.create(:user) } 
let(:profile) { FactoryGirl.create(:profile, user: user) } 

before do 
    login user 
    visit edit_profile_path(profile) 
end 

it { should have_selector('h2', text: 'Заполните информацию о себе') } 

describe "change information" do 
    let(:new_city) { "Ulan-Bator" } 
    let(:new_phone) { 1232442 } 
    let(:new_gamelevel) { "M2" } 
    let(:new_aboutme) { "nfsfsdfds" } 
    let(:submit) { "Сохранить" } 
    before do 
    fill_in "Город",    with: new_city 
    fill_in "Телефон",   with: new_phone 
    select new_gamelevel,  from: "Уровень игры" 
    fill_in "О себе",   with: new_aboutme 
    click_button submit 
    end 
    specify { profile.reload.city.should == new_city } 
    specify { profile.reload.phone.should == new_phone } 
    specify { profile.reload.gamelevel.should == new_gamelevel } 
    specify { profile.reload.aboutme.should == new_aboutme } 
end 

describe "submitting to the update action" do 
    before { put profile_path(profile) } 
    current_path.should == user_path(user) 
end 
end 
end 

J'ai erreur:

spécifications/demandes/profile_pages_spec.rb: 40: dans le bloc (3 niveaux) dans: variable locale définie ou méthode `current_path 'pour # (NameError)

Pourquoi je ne peux pas utiliser cette méthode?

J'utilise bijou 'capybara', '1.1.2' et Gem 'rspec rails', '2.11.0'

Répondre

0

Vous ne travaillez pas dans un bloc il.

describe "submitting to the update action" do 
    before { put profile_path(profile) } 
    it "redirects to show path" do 
    current_path.should == user_path(user) 
    end 
end 
+0

Oui, je vous remercie, je l'ai compris, c'est parce que 'sujet {page}' –

+0

BTW, vous pouvez utiliser un bloc aussi bien spécifier – apneadiving

Questions connexes