Я не могу заглушить свой @current_user, чтобы мой before_filter: login_required прошел, и я получаю правильный шаблон вместо перенаправления на экран входа.Stub curren_user для login_required rspec 3.1 rails
вот мой контроллер спецификации:
before(:each) do
allow(controller).to receive(:current_user).and_return FactoryGirl.build(:signed_up_user)
end
it "index action should render index template" do
get :index
expect(response).to render_template(:index)
end
Я считаю, что это новый RSpec синтаксис для гася.
Есть несколько примеров использования метода controller.stub, но это, похоже, не работает. Я просто хочу заглушить переменную @current_user, чтобы она выглядела так, как будто пользователь зашел в систему, поэтому я могу вернуться к тестированию моего контроллера с фактической спецификацией контроллера. Прямо сейчас, я использую только спецификации функций.
Я работаю над этим в течение нескольких недель!
EDIT:
Я не использую изобрести. Я создал свою собственную аутентификацию после Ryan Bates nifty: аутентификация.
before_filter :login_required
def login_required
unless current_user
redirect_to login_path
end
end
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
Я просто пытаюсь установить переменную @current_user (я предполагаю, что я мог бы также установить сессии [: user_id], но не смог получить эту работу либо) для моих тестов контроллера. Это должно позволить before_filter пройти и позволить мне проверить мои методы контроллера. Я тестирую аутентификацию в спецификации спецификации.
Я не использую устройство. Я хотел создать собственную аутентификацию с нуля. Подобно отличному: аутентификация Райана Бейтса. – rubyrailzdevel