Capybaraは、Rails5.1からデフォルトで入っているE2Eテスト(Featureテスト)をするのにはうってつけのGemになります。(5.0未満だと別途インストールが必要)
Capybaraは普通のRubyの構文と違う独自DSLで記述する必要があります。なので使える基本的な構文をご紹介します。
DSL
Capybaraには独自のDSLがあります。
scenario
通常のRspecにはdescribeや、it等の起点があると思いますが、Capybara独自の起点になります。
メソッド
visit [url]
特定のURLにアクセスする。
fill_in 'ラベル内容', with: '入力内容'
「ラベル内容」という名前のラベル(<label>要素)に対応するテキストボックスに対して「入力内容」という値を入れます。
click_button 'ボタン名'
「ボタン名」というvalueの値のボタンをクリックします。
click_buttonの注意点
起動されたアクションが完了する前に次の処理に移ってしまうことがあります。なので、最低でも一つ以上のエクスペクテーション(expect)を実行して処理の完了を待つようにしましょう。
click_link “リンク名”
指定したリンクをクリックする。
check “チェックボックス名”
指定したチェックボックスをオン状態にする。
uncheck “チェックボックス名”
指定したチェックボックスをオフ状態にする。
choose “ラジオボタンのラベル名”
ラジオボタンの指定したラベルを選択する。
select “オプション名”, from: “メニュー名”
セレクトボックスから指定したメニューを選択する。
save_and_open_page
Lanchy gem
lanchyをGemfileに追加してbundleインストールすると自動でHTMLを起動することができるので楽です。
1 2 3 4 |
group :test do gem 'capybara', '~> 2.13.0' gem 'launchy', '~> 2.4.3' ★追加 end |
この記事へのコメントはありません。