ちまたで噂のwebratが気になる…
- railsのテストの親和性向上を実現できる
Webratとは?
- Ruby Web Applicationのテストを行うためのライブラリ
- ブラウザ内の動作をブラウザ依存なしでテストを行うことが可能
- webアプリがjavascriptメインでないのであればさらにおすすめですよ!
構文
def test_sign_up visit "/" click_link "Sign up" fill_in "Email", :with => "good@example.com" select "Free account" click_button "Register" ... end
Webratを使用すると何がテストできるの?
- アクセスが成功しているかどうか
- ページ上に"Sign up"リンクが存在しているかどうか
- "Sign up"リンクにポイントされたURLへのアクセスが成功するかどうか
- Sign upページに"Email"フィールドが存在しているかどうか
- Sign upページに"Free acount"と呼ばれるオプションがあるかどうか
- ページ上に"Submit"と呼ばれるボタンがあるかどうか
- Sign upページを登録したときにe-mailとfree accountの情報をリンク先のページに送れているかどうか
なるほど。ブラウザ内の動作をテストできるイメージですかね。
注意したほうがよいテスト
- modelを変更した際に影響が出るカラム(nameやIDなど)
- URLリンク
- formの送り先URL
- ログインリクエスト時のHTTPメソッド
- Merbを利用する際はsession情報を失わないようにenvironments/test.rbに以下を設定しましょう。
Merb::Config.use do |c| c[:session_store] = 'memory' end
まとめ
- ブラウザ内の動きを内包してくれるライブラリ
- まだ詳しく調べていないのでわからないがcucumberと激しく相性が良さそう