Я понимаю, что этот вопрос задавали очень давно, но я все равно поделился. GLHF

я было несколько комбинированных тестов контроллера / вида, написанных с помощью rspec. Я добавил гем Capybara и написал несколько интеграционных тестов, которые хорошо проходят. Единственная проблема заключается в том, что теперь во всех моих тестах контроллера, где у меня есть

response.should have_selector («некоторый селектор»)

rspec выдает такие ошибки как:

NoMethodError:
       undefined method `has_selector?' for #<ActionController::TestResponse:0xa03e7ec>

когда я запускаю тесты контроллера. Я предполагаю, что Capybara используется в моих тестах контроллера и переписал некоторые методы Rspec. Как я могу это исправить?

# gemfile.rb
group :test do
  gem 'rspec'
  gem "capybara"
  gem "launchy"
  gem 'factory_girl_rails', '1.0'
end

# spec_helper.rb
RSpec.configure do |config|
  config.include IntegrationSpecHelper, :type => :request
end

Вот пример неудачного теста:

# spec/controllers/books_controller_spec.rb
require 'spec_helper'

describe BooksController do
  render_views

  it "should have the right page title" do
    get :show, :id => @book.ean
    response.should have_selector("title", :content => "Lexicase | " + @book.title)
  end
end

и это связанная ошибка:

  1) BooksController GET 'show' should have the right page title
     Failure/Error: response.should have_selector("title", :content => "Lexicase | " + @book.title)
     NoMethodError:
       undefined method `has_selector?' for #<ActionController::TestResponse:0xa8488c0>
     # ./spec/controllers/books_controller_spec.rb:23:in `block (3 levels) in <top (required)>'

Ответы на вопрос(2)

Ваш ответ на вопрос