Tyl*_*ler 7 session rspec ruby-on-rails omniauth ruby-on-rails-3
我正在用rspec编写功能规范,并希望每次都跳过登录步骤.用户通过omniauth(无设计)进行身份验证,并设置session[:user]变量然后引用以保持登录状态.我希望能够直接设置会话变量:
require 'spec_helper'
describe "My page" do
it "has what I want on it when logged in" do
user = FactoryGirl.create(:user)
session[:user] = user.id
visit my_path
page.should have_content "Foobar"
end
end
Run Code Online (Sandbox Code Playgroud)
但这给了
Failure/Error: session[:user] = user.id
NameError:
undefined local variable or method `session' for #<RSpec::Core::ExampleGroup::Nested_1:0x007fd13456d170>
Run Code Online (Sandbox Code Playgroud)
有没有办法直接设置会话变量,以便我可以避免大多数测试中的登录步骤?
rack_session_access gem似乎运行良好:https: //github.com/railsware/rack_session_access
有了它,测试成为:
require 'spec_helper'
describe "My page" do
it "has what I want on it when logged in" do
user = FactoryGirl.create(:user)
page.set_rack_session(user: user.id)
visit my_path
page.should have_content "Foobar"
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3283 次 |
| 最近记录: |