, поэтому мне нужно настроить отображение конфигурации для моих тестов для правильной работы. Per https://github.com/plataformatec/devise/wiki/How-To:-Test-controllers-with-Rails-3-and-4-%28and-RSpec%29, я добавилRSpec перед путаницей с графическими отображениями
describe Api::SessionsController do
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:admin]
end
...
end
Это прекрасно работает. Однако, поскольку я буду повторно использовать это по нескольким спецификациям, я хотел бы поместить его в модуль в папке поддержки. Следовательно:
поддержка/devise_helper.rb
module Controllers
module DeviseHelpers
def set_devise_mapping
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:api_user]
end
end
end
end
И включить модуль с помощью:
RSpec.configure do |config|
config.include Controllers::DeviseHelpers, type: :controller
end
А потом в спецификации:
describe Api::SessionsController do
set_devise_mapping
end
и я получаю следующее ошибка:
ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:626:in `method_missing':
`set_devise_mapping` is not available on an example group (e.g. a `describe` or `context` block).
It is only available from within individual examples (e.g. `it` blocks) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). (RSpec::Core::ExampleGroup::WrongScopeError)
Зачем я это получаю? Это то, что делает пример github, приведенный выше. Также он работает без метода. Я пытался использовать контекст и помещать его в разные места, но я получаю сообщение об ошибке, независимо от того, где я его разместил.
Спасибо!
Это вызывает ошибку: неинициализированные постоянные контроллеры. – Jarred