2012-06-19 148 views
1

我正在用我的RoR应用程序编写测试。我static_pages_spec.rbrspec测试中的奇怪行为

# encoding: utf-8 

require 'spec_helper' 

describe "Static pages" do 

    subject { page } 

    describe "Home page" do 
    before { visit root_path } 

    it { should have_selector('h1', text: 'Giripedia') } 
    it { should have_selector('title', text: full_title('')) } 
    it { should_not have_selector 'title', text: '| Home' } 
    end 

    describe "Help page" do 
    before { visit help_path } 

    it { should have_selector('h1', text: 'Yardım') } 
    it { should have_selector('title', text: full_title('Help')) } 
    end 

    describe "About page" do 
    before { visit about_path } 

    it { should have_selector('h1', text: 'Hakkımızda') } 
    it { should have_selector('title', text: full_title('About Us')) } 
    end 

    describe "Contact page" do 
    before { visit contact_path } 

    it { should have_selector('h1', text: 'İletişim') } 
    it { should have_selector('title', text: full_title('Contact')) } 
    end 
end 

,并在我的规格/支持/ utilites.rb文件

def full_title(page_title) 
    base_title = "Ruby on Rails Tutorial Sample App" 
    if page_title.empty? 
    base_title 
    else 
    "#{base_title} | #{page_title}" 
    end 
end 

如果我改变base_title = “Giripedia论坛”。测试失败并给我错误:

1) Static pages Home page 
    Failure/Error: it { should have_selector('title', text: full_title('')) } 
     expected css "title" with text "Giripedia forum" to return something 
    # ./spec/requests/static_pages_spec.rb:13:in `block (3 levels) in <top (required)>' 

    2) Static pages Help page 
    Failure/Error: it { should have_selector('title', text: full_title('Help')) } 
     expected css "title" with text "Giripedia forum | Help" to return something 
    # ./spec/requests/static_pages_spec.rb:21:in `block (3 levels) in <top (required)>' 

    3) Static pages About page 
    Failure/Error: it { should have_selector('title', text: full_title('About Us')) } 
     expected css "title" with text "Giripedia forum | About Us" to return something 
    # ./spec/requests/static_pages_spec.rb:28:in `block (3 levels) in <top (required)>' 

    4) Static pages Contact page 
    Failure/Error: it { should have_selector('title', text: full_title('Contact')) } 
     expected css "title" with text "Giripedia forum | Contact" to return something 
    # ./spec/requests/static_pages_spec.rb:35:in `block (3 levels) in <top (required)>' 

为什么base_title中的更改开始在测试中失败?

+0

您是否也改变了网页中的标题? – sarnold

+0

标题没有改变。我只改变了base_title。我使用助手方法进行测试。 – ytsejam

+0

我发现我的错误,我没有更改我的真实application_helper.rb。我只更改了规格文件。我花了一个小时才看到错误。 – ytsejam

回答

1

我可以设法在这里找到我的错误。可能是这样会帮助别人。

我只改变了spec文件中的base_title。但我应该改变属于被测试的app/helper的base_title。

我知道,我应该很好地阅读测试日志。