cucumber で javascript テスト
cucumber で javascriptテストなどをする場合はシナリオごとに @javascript タグを付ける。 テストを実行するとなんらかのWebDriver (デフォルトはselenium) がブラウザを起動して テストを実行するわけだが、alert や confirm が邪魔になる場合がある。 これらの確認をする必要がない場合は単純に alert や confirm を上書きして なんの挙動もしないようにしてしまえば良い。
さらに web_steps_ja.rb に利用部品として書いて好きな時にユーザが呼び出せるようにしてしまえば良いかな。
web_steps_ja.rb
module NotificationHelpers def ignore_notification(page) page.evaluate_script("window.alert = function(msg) { return true; }") page.evaluate_script("window.confirm = function(msg) { return true; }") end end World(NotificationHelpers)</p> <p>前提 /^通知を無視する$/ do ignore_notification(page) end
test.features (サンプル)
@javascript シナリオ: 〜〜〜を登録する 前提 ログイン名が"xxxxx"、パスワードが"yyyy"のユーザでログインしている 前提 "〜〜〜登録"ページを表示している 前提 通知を無視する</p> <pre><code> 〜以下任意のテスト〜 もし 〜をクリックする ならば 〜が表示されていること </code></pre> <p>