トップ «前の日記(2012/11/28 (水) ) 最新 次の日記(2012/11/30 (金) )» 編集 RSS feed

HsbtDiary


2012/11/29 (木) [長年日記]

[tdiary][capybara][ruby] tDiary で使う capybara を 2.0.0 にした

capybara が 2.0.0 とメジャーバージョンアップしたので、tDiary で使っている capybara も 2.0.0 にアップデートした。

capybara は 2.0.0 から Ambiguous Match(曖昧な一致) な node 検索は全て raise するようになってしまったので、これまで普通に動いている spec でも軒並み fail するようになってしまったので、tDiary ではそこを直した。この Ambiguous Match を直すには

  • プロダクトコードの id や name を厳格にする
  • spec での node 検索の仕方を見直す

の二つがあって、前者の方がよりよりコードではある物の既に動いているものがある以上、spec に合わせてプロダクトコードを直すというのはちょっと無しで、まずは spec を直してテストを通るようにしてから本体を直せるなら直すということにした。つーか、これ rails でサービスインしているような奴で id と name を直すのなんて無理じゃないの。

とりあえず、直し方としてはこのコミットを参考にしてください。Ambiguous Match な find をいきなりやるのでは無く text 検索などで出来るだけ狭めてからノードで直接 click を実行するという方法を使うと割とタンポポワークで直すことができる。

あと、tDiary でやったこととしては、1.8 だと上に書いたような text で検索するということができなくなったので、1.8 の時は capybara-1.x.y を使うことにした。皆さんも頑張って capybara-2.0.0 に挑戦してみてください。