capybaraでphpのアプリのテストをする

WEB+DB vol.75に載っていてやろうと思ったけど地味にできなかったのであれです。

最低限の準備はこれ(↓)くらい!あとはbundle exec rspec specとかでテストが実行できる

最初

An error occurred in an after hook
  ArgumentError: mechanize requires a rack application, but none was given
  occurred at ~/.rvm/gems/ruby-2.0.0-p247/gems/capybara-mechanize-1.1.0/lib/capybara/mechanize/driver.rb:6:in `initialize'

こんな感じなエラーが出てなんだ?と思ったんだけど、Rackじゃないアプリのテストをする場合は、

config.app = "fake"

ってな感じで、なんでもいいけどappをとりあえずnilにしないようにする必要がある。

ってここで作者が言ってた。https://groups.google.com/forum/#!msg/ruby-capybara/9UFnfrc1S-s/TfQO5uBv7gMJ

mechanizeのあれなので、driverにseleniumとかを使う場合は別に設定しなくても大丈夫。

seleniumだとブラウザ動いて楽しいしキャプチャも撮れたりしていいかもしれないけど逆にブラウザうざかったりするしキャプチャ撮らないしとりあえずmechanizeでしばらくやってみる。