フォームの input フィールドの value 値を RSpec + Capybara でテスト

スポンサーリンク

フォーム要素の input フィールドの value 値が正しい値となっているかをテストする方法。User モデルのビューでよくある感じの以下のような input フィールドを例とします。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

— 環境 —
rails-4.0.1
rspec-rails-2.14.0
capybara-2.2.0

should have_xpath を使う

これらのフォーム input フィールドの value 値が正しく出力されているか、あるいは空になっているかをテストしたいケースがありました。先に結論から言うと、実際に正しく動作したテストコードは以下。user が User モデルのオブジェクトとなっています。

have_css, have_selector では動かなかった

最初、have_css, have_selector を試したのですが、上手くテストが動作しませんでした。

これは以下のエラー。

have_selector に変えてみるも…

同様のエラー。

ということで、最初に紹介した XPath で指定する方法を利用しました。

スポンサーリンク
私は Rails のテストフレームワークには RSpec を使っています。サーバーのテスト用に Serverspec もおすすめです。
 
スポンサーリンク
  • 1件のコメント
  • capybara 3.6.0 で試したところ、次のような書き方でいけるみたいです。


    it { should have_field("user[email]", with: user.email) }

    参考まで。

Leave Your Message!