2013-05-22 3 views
3

У меня возникли проблемы с получением один из моих Rspec прохождения тестов с использованием Capybara 2.1.0Rspec пусть переменная не работает с have_title

Это работает:

require 'spec_helper' 

describe "Static pages" do 

    describe "Home page" do 

     it "should have the title 'Home'" do 
     visit '/static_pages/home' 
     page.should have_title("MyApp | Home") 
    end 
    end 
end 

Это не

require 'spec_helper' 

describe "Static pages" do 

    let(:site_title) {"MyApp"} 

    describe "Home page" do 

     it "should have the title 'Home'" do 
     visit '/static_pages/home' 
     page.should have_title("#{site_title} | Home") 
    end 
    end 
end 

Любые мысли? Я работаю над этим довольно долгое время. Вот сообщение об ошибке, которое я получаю.

1) Static pages Home page should haven the title 
Failure/Error: page.should have_title("#{site_title} | Home") 
    expected #has_title?("MyApp | Home") to return true, got false 
# ./spec/requests/static_pages_spec.rb:16:in `block (3 levels) in <top (required)>' 
+0

Не могли бы вы изменить свой вопрос, чтобы включить сообщение об ошибке? –

ответ

3

кажется вам не хватает фигурные скобки для #{site_title} или вам необходимо использовать двойные кавычки для строки, чтобы интерполяция переменных. У вас есть:

page.should have_title('#site_title | Home') 

, где он должен быть

page.should have_title("#{site_title} | Home") 
+0

У меня есть фигурные скобки в моем код. Не знаете, почему это не отображается в сообщении об ошибке. Я попытался переключиться на двойные кавычки, и это тоже не сработало. – FajitaNachos

+0

Скорее всего RSpec читает устаревший код. Это может показаться очевидным, но сохранили ли вы свои изменения, прежде чем запускать тесты и/или перезапускать любые инструменты непрерывной разработки, такие как Spork, которые вы можете использовать? –

+0

Спасибо, я забыл перезапустить охрану/spork. Когда я это сделал, он показал фигурные скобки в ошибке, но все еще не удалось. Ожидалось, что он вернет true и т. Д. – FajitaNachos

0

Попробуйте это:

require 'spec_helper' 

describe "Static pages" do 

    let(:site_title) {"MyApp"} 

    describe "Home page" do 

     it "should have the title 'Home'" do 
     visit '/static_pages/home' 
     page.should have_selector('title', text: "#{site_title} | Home") 
    end 
    end 
end 
+0

Спасибо, но has_selector не работает с версией Capybara, которую я использую. Я думаю, что это не работает ни в чем, кроме 2.0, если я не ошибаюсь. Вот почему я использую has_title для этого ответа http://stackoverflow.com/questions/13573525/rspec-capybara-2-0-tripping-up-my-have-selector-tests – FajitaNachos

Смежные вопросы