ruby-on-rails – 在rails中的view.stub部分rspec给出’undefine
发布时间:2020-12-17 03:04:49 所属栏目:百科 来源:网络整理
导读:使用Rails 3.2.11 我有几个视图rspec测试,我需要存根’current_user’调用. 我在常规视图测试中成功使用了这个: require 'spec_helper'describe "projects/_my_project.html.erb" do before(:each) do @client = FactoryGirl.create(:user) view.stub(:curr
使用Rails 3.2.11
我有几个视图rspec测试,我需要存根’current_user’调用. 我在常规视图测试中成功使用了这个: require 'spec_helper' describe "projects/_my_project.html.erb" do before(:each) do @client = FactoryGirl.create(:user) view.stub(:current_user) { @client } end describe "new proposals notice" do it "does not display new_propsals if in state posted and clicked after last submitted" do @my_project = FactoryGirl.build(:project,status: "posted",last_proposals_click: "2012-02-02 14:01:00",last_proposal_submitted: "2012-02-02 14:00:00") render :partial => "/projects/my_project",:locals => { :my_project => @my_project } rendered.should_not have_content "You received new proposals" end end end Current_user由controllers / helpers.rb中的Devise定义(在gem中).我在视图或控制器中使用它作为current_user(作为方法,而不是实例). 问题似乎是在view.stub中的视图在这里为零,是否有另一个对象用于部分?我根本不明白为什么这种方法在常规视图中是完美的而不是局部的. 我明白了: Failure/Error: view.stub(:current_user) { @client } NoMethodError: undefined method `view_context' for nil:NilClass 以下是视图中使用current_user进行完整性的行: <% if my_project.user_id == current_user.id %> 有谁知道我怎么能成功地将它连接到stub current_user,我在这里不知所措…… 谢谢 解决方法
事实证明,将view.stub(:current_user){@client}移动到每个’it’块中解决了问题;如果它在’before:each / all’块中似乎不起作用.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |