我正在使用rspec,设计并尝试测试我的观点。 在我的视图调用的辅助函数中,我使用变量current_user 这在实践中运行良好,但是使用rspec,我得到一个令人遗憾的“未定义的变量或方法current_user”错误。
我尝试了很多不起作用的东西。
@user = FactoryGirl.build_stubbed(:user)
assign(current_user, @user)
sign_in :user, @user
def current_user
@user
end
current_user = @user
view.stub!(:current_user).and_return @user
assign[:currrnet_user] = @user
任何人都知道如何做到这一点?提前谢谢。
答案 0 :(得分:0)
我必须这样做才能使其正常工作。
RSpec.describe 'foos/index.html.erb', type: :view do
before do
controller.singleton_class.class_eval do
def current_user
User.find_by(username: 'schmoe')
end
helper_method :current_user
end
render
end
...
end
答案 1 :(得分:-3)
因此,辅助方法的解决方案是将它们存根。我真的不喜欢这个解决方案,因为我认为它是一个bug,但它是做需要做的事情的方法。