2012-04-13 2 views
1

ユーザーのUSER_AGENTによって駆動される必要があるレール3.2アプリケーションにいくつかの機能があります。基本的には、古いブラウザではページのレンダリングを別にする必要があります。capybaraを使用してUSER_AGENTに基づいて表示機能をテストする方法

カピバラ/キュウリを使用してビューが正しく反応することをテストするにはどうすればよいですか?

私はこの記事を見ましたが、それは最新のカピバラで動作しますようにそれは見ていない - それは基本的にカピバラスタブ環境パラメータ道ハッキング:

http://blog.sparqcode.com/2011/03/07/custom-user-agent-strings-with-cucumber-and-capybara/

私がしたい何がキュウリです

When /^I visit the page with an unsupported browser$/ do 
    user_agent = "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8" 
    # do something here that mimics the user arriving on the page with this USER_AGENT 
end 
+0

最後に、私はcapybara-webkitを使用してこの問題を解決しました。 –

答えて

1

Firefoxを使用してテストを実行している場合は、好きなUSER_AGENTを持つカスタムドライバを作成できます。 this answerを参照してください。

カスタムドライバを作成したら、シナリオをドライバ名でタグ付けするだけでシナリオを実行することができます。たとえばCapybara.register_driver :old_browserの場合は、シナリオに@old_browserというタグを付けて、Capybaraが自動的に切り替わりますドライバ。あなたが好きではない場合は、好きなときにいつでもドライバを切り替えることができます:Capybara.current_driver = :old_browser

+0

ありがとう!これは動作し、私が必要とするものを正確に実行します。しかし、テストが実行されたときに文字通りブラウザを起動し、その後にブラウザを終了します。私の他のキュウリ試験は実際にはブラウザを起動しません。どのように私はこれを抑制することができます知っていますか? –

+0

これはうまくいきました。すでにブラウザドライバを使用していたのかどうかはわかりませんでした。この方法はFirefoxプロファイルの使用に依存しているため、Firefoxを起動すると、ユーザーエージェントを変更する別の方法が見つからない限り、それほど多くのことを行うことはできません。 –

+0

私はirC#capyabaraの誰かにcapybara-webkitの使用をお勧めしました。 https://github.com/thoughtbot/capybara-webkit/blob/master/spec/driver_spec.rbを参照してください。 –

関連する問題