トップ «前の日記(2010/10/22 (金) ) 最新 次の日記(2010/10/24 (日) )» 編集 RSS feed

HsbtDiary


2010/10/23 (土) [長年日記]

[envjs][jquery] jQuery UI の tabs のテストが envjs ではできない

今のプロジェクトでは integration test を steak で実施しているんだけど、Capybara の default_driver は RackTestDriver なので javascript は基本的に動かない。

さすがに 2010 年になって、ちょっとした UI を作ると javascript のテストをしないまま deliver するというのは不安すぎるので、まずは default_driver として envjs を使ってみたのだけど、以下のようなエラーが発生してどうにもうまく動かない。

{ENVJS} Exception while dispatching events: TypeError: hash is undefined

なんでかなー、と色々調べてみたら、capybara-envjs の issue にそのものずばりが書いてあった。

結局、この部分は selenium を経由してテストすることにしたので、手元では解決したんだけど、selenium を使うと CI どうすんの的な問題が発生して、それはそれで大変なのであった。とほほ。

[Capybara][rails][ruby] Capybara で Selenium を使う

Capybara で Driver を切り替えるにはいくつか方法がある。Capybara で操作する spec 全ての Driver を切り替えるには

Capybara.default_driver = :selenium

を acceptance_helper.rb あたりに書いておく。全てではなくて、特定の javascript を動かしたい spec に限って切り替えたい場合は

befor do
  Capybara.current_driver = :selenium
end

after do
  Capybara.use_default_driver
end

というのを *_spec.rb それぞれに書いておく。

できれば、ディレクトリ単位でがばっと切り替えたりしたいんだけど、その方法については今のところ試行錯誤中。