errorhandler
errorhandler

Reputation: 1767

Rails 3 Capybara error

I'm trying to get Capybara to work with rails 3 (and test unit) but when I try to run rake test:integration I get an error:ArgumentError: @request must be an ActionDispatch::Request

The test:

require 'integration_test_helper'

class UserNotesTest < ActionDispatch::IntegrationTest
  test "User should login" do
    user = Factory.create(:user)
    visit '/login'
    assert_response :success

    fill_in 'user_email', :with => user.email
    fill_in 'user_password', :with => user.password
    click_button 'Sign in'

    assert_redirect_to notes_path
  end
end

integration_test_helper:

require 'test_helper'
require 'capybara/rails'

module ActionDispatch
  class IntegrationTest
    include Capybara
  end
end

I'm not really sure whats going wrong...

Upvotes: 6

Views: 1351

Answers (1)

ipd
ipd

Reputation: 5714

This has been a problem with capybara not assigning anything to the @request variable after visit.

One solution is to use the rails built-in methods, i.e.

get '/login'
assert_response :success

In rspec, i use assertions on page rather than @request.

There is some discussion here.

Upvotes: 3

Related Questions