Rails 3 ошибка Капибара - PullRequest
       5

Rails 3 ошибка Капибара

6 голосов
/ 02 апреля 2011

Я пытаюсь заставить Capybara работать с рельсами 3 (и тестовым модулем), но когда я пытаюсь запустить rake test:integration, я получаю ошибку: ArgumentError: @request must be an ActionDispatch::Request

Тест :

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

Я не совсем уверен, что происходит не так ...

1 Ответ

3 голосов
/ 10 августа 2011

Это проблема с капибарой, которая ничего не назначала переменной @request после visit.

Одним из решений является использование встроенных методов rails, например:

get '/login'
assert_response :success

. В rspec я использую утверждения на page, а не @request.

Здесь есть некоторое обсуждение.

...