出于某种原因,我无法让设计辅助方法 sign_in 工作。 current_user 一直为空。知道问题出在哪里吗?
测试:
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
感谢任何帮助。谢谢!
最佳答案
如果您在User
模型(或其他设计可验证模型)中包含Confirmable
模块,那么您创建的测试@user
必须确认 sign_in
才能生效:
before :each do
@user = FactoryGirl.create :user
@user.confirm!
sign_in @user
end
(我知道这不是您的问题,但也许其他读者会从中受益。)
关于ruby-on-rails - 设计测试助手 - sign_in 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226502/