2013-11-06 5 views
0

Я установил охрану после Michael's RoR Tutorials и намеренно написал тест (на заголовке контактной страницы), чтобы он не прошел. Но Guard/RSpec говорит мне, что это прошло, и я смущен, что происходит. Это мой static_pages_spec.rb файл:Охрана проходит мой тест RSpec

require 'spec_helper' 

describe "Static pages" do 

    describe "Home page" do 

    it "should have the content 'Welcome to the PWr App'" do 
     visit '/static_pages/home' 
     expect(page).to have_content('Welcome to the PWr App') 
    end 

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

    describe "Help page" do 

    it "should have the content 'Help'" do 
     visit '/static_pages/help' 
     expect(page).to have_content('Help') 
    end 

    it "should have title 'Help'" do 
     visit '/static_pages/help' 
     expect(page).to have_title("PWr | Help") 
    end 
    end 

    describe "About page" do 
    it "should have the content 'About me'" do 
     visit '/static_pages/about' 
     expect(page).to have_content('About Me') 
    end 

    it "should have title 'About Me'" do 
     visit '/static_pages/about' 
     expect(page).to have_title("PWr | About") 
    end 
    end 

    describe "Contact page" do 
    it "should have the content 'Contact'" do 
     visit '/static_pages/contact' 
     expect(page).to have_content('Contact') 
    end 

    it "should have title 'Contact'" do 
     visit '/static_pages/contact' do 
     expect(page).to have_title("FAIL") 
     end 
    end 
    end 
end 

И это мой contact.html.erb:

<% provide(:title, 'Contact') %> 
<h1>Contact</h1> 
<p1> 
     If you need to contact me just call the number below: </br> 
     +48 737823884 
</p> 

И результаты моего терминала:

18:43:57 - INFO - Running: spec/requests/static_pages_spec.rb 
........ 

Finished in 0.08689 seconds 
8 examples, 0 failures 


Randomized with seed 55897 

[1] guard(main)> 

Как вы можете видеть, в файле спецификации близко к в конце у меня есть expect(page).to have_title("FAIL") и на странице контактов html/erb У меня явно есть <% provide(:title, 'Contact') %>, но тест проходит. Почему это? Что я делаю не так?

ответ

3

Проблема в том, что вы передаете свое ожидание в виде блока к методу посещения, то есть обратите внимание на дополнительный do-end. Я не считаю, что visit использует блоки, поэтому в основном этот бит кода игнорируется.

it "should have title 'Contact'" do 
    visit '/static_pages/contact' do 
    expect(page).to have_title("FAIL") 
    end 
end 

Ваша спецификация должна вести себя как ожидается, если вы удалите блок.

it "should have title 'Contact'" do 
    visit '/static_pages/contact' 
    expect(page).to have_title("FAIL") 
end 
+0

спасибо. Я не мог это заметить. исправлено сейчас :) – Emanuel

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