Reputation: 1767
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
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