2013-08-05 60 views
2

在Rails的教程,第5.3節(佈局鏈接),我們添加一些測試的聯繫頁面:困惑,爲什麼在5.3節測試應該失敗

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 the title 'Contact'" do 
    visit '/static_pages/contact' 
    expect(page).to have_title("Ruby on Rails Tutorial Sample App | Contact") 
    end 
end 

後,我們在頁腳註釋掉的聯繫紐帶代碼:

<li><%#= link_to "Contact", '#' %></li> 

根據課文,「爲了確保雙方的測試清單5.17失敗,我們需要註釋掉‘’頁腳鏈接」聯繫,但並沒有意義的我。沒有測試聯繫人鏈接,只測試聯繫人頁面具有有效的標題和內容。如果聯繫頁面已正確定義,則無論腳註中是否存在鏈接,測試仍應通過。

還是我失去了一些東西?它的行爲如我所願,但我不想繼續並錯過我應該理解的事情。

感謝

回答

1

如果我們不註釋掉環節,第一個測試我們創建聯繫頁面之前通過。這是因爲RSpec會在頁面上的任何位置搜索單詞「Contact」(這就是'have_content'的工作方式),所以它會在頁腳中找到它,這意味着第一次測試會通過歸功於我們的通用頁腳,而不是感謝我們實際上創建一個聯繫頁面。

+0

啊我明白了。如果我以前的部分沒有創建聯繫人頁面,它會失敗。如果文本指出,如果聯繫頁面存在,它就不會失敗(因爲前面的部分提到它是一個練習),但我會在星期一對這個問題進行一次腦力激發。 :) 謝謝! – cfiske

+0

哦,對了,忘了那裏有一個練習!是的,在評論完該行後,如果您沒有完成練習,那麼這兩項測試都會失敗:) – najwa