Rails3、RSpec2 - Viewのテストで「undefined method `has_tag?'」「undefined method `has_selector?'」
久しぶりにRSpecでViewのテストを書いていたら、タイトルのエラーが発生しました。
・rendered.should have_tag → undefined method `has_tag?'
・rendered.should have_selector → undefined method `has_selector?'
実行環境は以下の通りです。
・ruby 2.0.0p0
・Rails 3.2.12
・RSpec 2.13.1
いろいろ調べたところ、以前は使用できたhave_tagは、RSpec2では使用できなくなったようです。
(間違っていたら、指摘してください・・・。)
結局、Rails3でタグの値をテストするには
1.Gemfileに「gem 'capybara'」を記述し、$ bundle install を実行する
2.rendered.should have_selector("タグ名", "値") でテストを記述する
3.have_tagはcapybaraに用意されてないので使用しない
ことで解決しました。
以上です。
capybaraはhave_selector以外にも様々なメソッドを持っていそうです。
なので結論としては、Viewのテストをするなら、capybaraはGemfileに書いておくべき
かと思われます。