事前情報
当記事は以下の2記事を流用しています。
重複する情報は省略します。
Ruby | RubyでSelenium WebDriverを利用して画面の自動テストを行う
書籍 RSpec Book | Hello Cucumber
詳細
当ブログの検索機能をテストします。
検索結果の1件目に表示される記事の件名がテスト対象です。
テスト対象URL:http://d.hatena.ne.jp/tbpg/
検索キーワード:Cucumber
期待値:書籍 RSpec Book | Hello Cucumber
※2013/05/06 01:16:20 時点
サンプルコード
hatena_tbpg_step.feature
# language: ja 機能: はてなtbpg's programming memoブログ シナリオ: はてなtbpg's programming memoブログの検索 前提 Selenium WebDriverの初期化 もし 「Cucumber」で検索した場合 ならば 結果の1件目に「書籍 RSpec Book | Hello Cucumber」が表示されること
hatena_tbpg_step.rb
# encoding: utf-8 require "selenium-webdriver" Given(/^Selenium WebDriverの初期化$/) do # FireFoxで実施 ※引数を変更すればマルチブラウザテストも可能 @driver = Selenium::WebDriver.for :firefox # テスト対象URL @driver.navigate.to "http://d.hatena.ne.jp/tbpg/" end When(/^「(.*)」で検索した場合$/) do |search_word| input = @driver.find_element(:name, 'word') input.send_keys search_word input.submit @output = @driver.find_element(:name, '1367767092') end Then(/^結果の1件目に「(.*)」が表示されること$/) do |expected| @output.text.should == expected @driver.quit end
出力結果
$cucumber features # language: ja 機能: はてなtbpg's programming memoブログ シナリオ: はてなtbpg's programming memoブログの検索 # features\hatena_tbpg_step.feature:3 前提Selenium WebDriverの初期化 # features/step_definitions/hatena_tbpg_step.rb:4 もし「Cucumber」で検索した場合 # features/step_definitions/hatena_tbpg_step.rb:11 ならば結果の1件目に「書籍 RSpec Book | Hello Cucumber」が表示されること # features/step_definitions/hatena_tbpg_step.rb:18 1 scenario (1 passed) 3 steps (3 passed) 0m12.187s