私は最初のカピバラテストを始めようとしています。私はRyanBateの哲学に従い、コントローラーの仕様ファイルにいくつかの機能テストを入れています。
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="/users/sign_up">Register</a> or <a href="/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、Capybara1.1.2を使用しています。
(stackoverflowに関する他の質問と、いくつかのチュートリアルとスクリーンキャストをすでに確認しました。idタグが指定された要素が見つからない理由はわかりませんが、おそらく明らかな何かが欠けています。