Rails 3.2.11 の rspec 2.10 ビュー仕様を書いています。私がテストしているビューには、その動作にとって重要な JavaScript がいくつかあります。rspec コントローラー テストで JavaScript テストを有効にすることはできましたが、こちらの手順に従ってビュー スペックを使用することはできませんでした。要約すると、次の行を spec_helper.rb に追加します。
require 'capybara/rspec'
require 'capybara/rails'
仕様でカピバラドライバーを webkit として設定しました。
Capybara.javascript_driver = :webkit
Capybara.current_driver = Capybara.javascript_driver
また、Capybara-webkit gem を Gemfile に含め、bundle install を実行してインストールしました。さらに, :js => true
、spec ブロック定義の前に追加します。
それでも、次のようなテストを実行すると
rendered.should have_content('Text in JavaScript button')
<script></script>
基本的に、レンダリングされたビューのタグ内に JavaScript がテキストとして含まれていることを示すエラー メッセージが表示されます。
rspec ビュー仕様で JavaScript を有効にする方法はありますか? 単体テストを行う必要があるため、機能仕様ではなくビュー仕様でこれをテストしたいと考えています。また、このビュー仕様は Rails と対話し、少なくともその動作をモックしたいので、Jasmine を使用したくありません。