bob*_*eno 4 rspec ruby-on-rails
使用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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
以下是视图中使用current_user进行完整性的行:
<% if my_project.user_id == current_user.id %>
Run Code Online (Sandbox Code Playgroud)
有谁知道我怎么能成功地将它连接到stub_user,我在这里不知所措......
谢谢
| 归档时间: |
|
| 查看次数: |
1509 次 |
| 最近记录: |