2012-06-26 15 views
0

我使用的測試是:爲什麼Rspec /水豚給我一個預期的CSS ...返回錯誤?

it { should have_link('Logout', href: logout_url) } 

我只是Logout測試的<a>標籤的存在爲文本,並在href是logout_url路徑。我應該使用另一種語法嗎?

寶石:

rails 3.2.6 
rspec-rails 2.10.1 
capybara 1.1.2 
+0

我們可能需要更完整的代碼和錯誤輸出。 –

回答

1

有很多方法可以做到這一點。我建議(如果你還沒有)熟悉整體capybara dsl以及一些特定的部分,如capybara matchers

我相信你的測試是細寫爲:

it { should have_link('Logout', href: logout_url) } 

只要鏈接的文字真的是「退出」和href是正確指定(見下文)。

根據capybara docshave_link的第一個參數就是所謂的locator。在你的情況下,它是'註銷'。這可以是鏈接本身的文本,也可以是dom元素的#id。所以在你的情況下,你需要在鏈接中有文字'註銷',鏈接有logout_url鏈接。

請注意,在水豚的地點是區分大小寫,所以請確保您匹配的情況下。

您可能還想考慮是否應該使用logout_url而不是logout_path。默認情況下,rails不會爲大多數鏈接生成完整的網址。它只是產生路徑。這裏的區別:

users_url: http://localhost/users 
users_path: /users 

檢查您的網頁,看看這些類型的URL的是由您的應用程序產生的。

0

也許這應該是logout_path。

此外,您可以嘗試使用save_and_open_page來了解發生了什麼問題。

相關問題