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

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

スポンサーリンク

— 環境 —
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 もおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!