RSpec + Capybara でラジオボタン/セレクト/チェックボックスのフォーム要素をテスト

スポンサーリンク

Capybara を RSpec とともに使ってフォーム入力する際に、text_field 以外の HTML フォーム要素に入力してテストを行うためのチート。text_field(input type=”text”)は、普通に fill_in でフィールドに入力できますが、他の要素について調べました。

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

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

User モデルでの form_for の中で Rails ヘルパーでフォーム要素を作成し、出力される HTML を併記しています。また、それに対する RSpec + Capybara でのテストの書き方。

radio button(ラジオボタン)

ラジオボタンの場合、Capybara で要素をチェックするには以下のように書く。

男性にチェックする場合。

女性にチェックする場合。

select option(セレクト)

セレクトメニューの場合、Capybara で要素を選択するには以下のように書く。

日本語を選択する場合は以下。

英語を選択する場合は以下。

value の値(ja, en)じゃなくて、セレクトメニューのラベル名を指定する。ここちょっとはまりました。

check box(チェックボックス)

チェックボックスの場合、Capybara でのチェックには、check, uncheck メソッドを使う。

チェックを入れる。

チェックを外す。

以上です。

スポンサーリンク
私は Rails のテストフレームワークには RSpec を使っています。サーバーのテスト用に Serverspec もおすすめです。
 
スポンサーリンク

Leave Your Message!