由于某种原因,我无法使设计助手方法sign_in正常工作。 current_user始终为null。知道可能是什么问题吗?
测试:
before :each do
@user = FactoryGirl.create :user
sign_in @user
end
describe "GET index" do
it "assigns all subscribers as @subscribers" do
subscriber = @user.subscribers.create! valid_attributes
get :index
assigns(:subscribers).should eq([subscriber])
end
end
执行:
def index
@subscribers = current_user.subscribers.all <------- ERROR
respond_to do |format|
format.html # index.html.erb
format.json { render json: @subscribers }
end
end
Error:
NoMethodError:
undefined method `subscribers' for nil:NilClass
任何帮助表示赞赏。谢谢!
最佳答案
根据您的代码判断,您似乎已经解决了这个问题。我以前曾经发生过这种情况,由于某种原因,它每次都会吸引我。
开箱即用的 Controller 规范的rspec/rails支架不适用于Devise::TestHelpers。
get :index, {}, valid_session
valid_session调用将覆盖Devise设置的 session 内容。去掉它:
get :index, {}
这应该工作!
关于ruby-on-rails - Devise Test Helper-sign_in不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12226502/