Используйте помощники запросов вне спецификаций контроллера - PullRequest
2 голосов
/ 17 ноября 2010

Я бы хотел включить помощники запросов (из ActionDispatch :: Integration :: RequestHelpers [ApiDock] , например, методы post и xhr) также в некоторые спецификации вне спецификаций моего контроллера.Проблема заключается в том, что эти помощники запросов включаются только в спецификации / контроллера и при описании контроллера.Что я должен включить / требовать в этих спецификациях?Я использую RSpec 2 и Rails 3.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2010

Я только что решил проблему, включив приведенный ниже код в мой помощник по приему. Если вы не Steak, то просто поместите его в spec helper или потребуйте его откуда-то еще. Методы post и xhr теперь доступны в этой спецификации, независимо от того, какая это спецификация или в каком каталоге вы находитесь.

Код получен из RSpec :: Rails :: RequestExampleGroup

RSpec::Core::ExampleGroup.class_eval do
  include ActiveSupport::Concern
  include ActionDispatch::Integration::Runner
  include RSpec::Rails::BrowserSimulators

  def app
    ::Rails.application
  end

  def last_response
    response
  end
end
1 голос
/ 14 ноября 2014

Я знаю, что прошло 4 года, и, конечно, многое изменилось, но, поскольку я наткнулся на этот вопрос, пытаясь найти, как заставить другие тесты вести себя как тесты контроллера (и таким образом иметь методы post и get и тому подобное ) Я хотел бы указать на это решение, которое работает с RSpec 3: если вы добавите это к spec_helper

 config.include RSpec::Rails::RequestExampleGroup, type: :request, example_group: { file_path: /spec\/(api|integration)/

это сделает все тесты в данном пути поддерживающими методы контроллера.

...