RailsでCucumberのstepがfaildを返したときのデバック方法
もし以下のようなstepでテストがfailedになった場合、
Given /^(.*)番目のアイテムの詳細ページを表示している/ do |pos| visit "items/index" within("table > tr:nth-child(#{pos.to_i + 1})") do click_link "詳細" end end
save_and_open_pageを以下ように埋め込む
Given /^(.*)番目のアイテムの詳細ページを表示している/ do |pos| visit "items/index" save_and_open_page within("table > tr:nth-child(#{pos.to_i + 1})") do click_link "詳細" end end
すると/items/indexにアクセスしたときに返されたhtmlが{RAILSROOT}/tmp以下にwebrat○○.htmlという名前で保存される。
これを見るとデバッグするときに非常に便利です。