我正試圖讓我的第一次水豚測試進行。我遵循瑞安貝特的理念,並將一些功能測試放入我的控制器規格文件中。水豚在頁面上找不到鏈接
describe UsersController do
render_views
it "can get the home page" do
get 'home'
response.body.should include("Login")
end
it "should log in" do
get 'home'
puts response.body
click_link('Login')
response.body.should include("Email")
response.body.should include("Password")
end
end
在它應該登錄我遇到了問題,所以開始只是試圖確保我可以找到並點擊鏈接。沒有運氣。在測試如上我只是想確保鏈接存在
的puts response.body
產生以下輸出
...
<div id="user_nav">
<a href="https://stackoverflow.com/users/sign_up">Register</a> or <a href="https://stackoverflow.com/users/sign_in" id="Login">Login</a>
</div>
...
,我也看到實際的頁面上的元素。似乎只有我的測試找不到它。第一個測試通過。
1) UsersController should log in
Failure/Error: click_link('Login')
Capybara::ElementNotFound:
no link with title, id or text 'Login' found
# (eval):2:in `click_link'
# ./spec/controllers/users_controller_spec.rb:14:in `block (2 levels) in <top (required)>'
我使用的是Rails 3.2,Rpsec 2.11和Capybara 1.1.2。我已經檢查了其他問題在stackoverflow以及一些教程和截屏。我看不到任何理由它無法找到一個元素給定一個ID標記,但我可能會錯過一些東西。明顯
爲什麼你的錯誤提'click_link( '條款')當你的天賦被調用'click_link( '登錄')''? –
正如我在發佈,我想也許有關於該鏈接有一些特別的東西(雖然代碼沒有提示任何東西),所以我然後用我的頁腳中的鏈接嘗試它。我在切換代碼後必須粘貼錯誤。我會在上面解決它,但錯誤似乎發生在頁面上的多個鏈接。 – hershey