ajaxを使用してコントローラーアクションを呼び出すリンクをテストしようとしています。基本的に、ユーザーが[フォロー]をクリックすると、ユーザーは会社に関連付けられ、部分レンダリングがJSで実行されます。問題は、開発で試してみると正しく動作するのに、テストでは応答しないことです。私はさまざまな方法で試してきましたが、呼び出しがコントローラーに到達しないようです。
ここでテストを見ることができます:
#spec/integration/following_spec.rb
it "should add the company to the ones followed by the user", :js => true do
find("#current_company").click_link "Follow"
sleep 2
@user.companies_followed.include?(@company).should be_true
end
景色:
#app/views/companies/_follow_button.html.slim
= link_to change_follow_state_company_path(@company), :method => :put, :remote => true, :id => "follow", :class => "btn_block light" do
' Follow
そしてテスト構成:
#spec/integration_helper.rb
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rspec'
require 'capybara/rails'
Dir[Rails.root.join("spec/integration/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.use_transactional_fixtures = true
config.before do
clear_email_queue
end
end
Rails.cache.clear