Итак, я прочитал, как решить эту проблему:
Сбой теста RSpec пользовательского контроллера сеанса Devise завершается с помощью AbstractController :: ActionNotFound
и
http://lostincode.net/blog/testing-devise-controllers
Но в какой файл я добавляю эти изменения - моя проблема:
В папке rspec для моего
registrations_controller
Я пробовал это
before :each do
request.env['devise.mapping'] = Devise.mappings[:user]
end
require 'spec_helper'
describe RegistrationsController do
describe "GET 'edit'" do
it "should be successful" do
get 'edit'
response.should be_success
end
end
end
Что не работает, любая помощь с конкретными файлами, которые нужно изменить, чтобы сделать эту работу, будет принята с благодарностью.
EDIT
Так я тоже попробовал -
https://github.com/plataformatec/devise/wiki/How-To:-Controllers-and-Views-tests-with-Rails-3-(and-rspec)
поэтому я создал папку со спецификацией / поддержкой и создал файл с именем controllers_macros.rb
module ControllerMacros
def login_admin
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:admin]
sign_in Factory.create(:admin) # Using factory girl as an example
end
end
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
user = Factory.create(:user)
user.confirm! # or set a confirmed_at inside the factory. Only necessary if you are using the confirmable module
sign_in user
end
end
end
А мой registrations_controller теперь такой:
require 'spec_helper'
describe RegistrationsController do
describe "GET 'edit'" do
before :each do
request.env['devise.mapping'] = Devise.mappings[:user]
end
it "should be successful" do
get 'edit'
response.should be_success
end
end
end
У меня есть другие контроллеры в rspec. Нужно ли менять каждый из них? Или я запутался в том, где внести изменения.