3
使用Rails 3.2.11view.stub在軌道部分的RSpec給「未定義的方法view_context」
我有幾個,我需要存根「CURRENT_USER」調用視圖RSpec的測試。
我已用常規視圖測試成功地用於此像這樣:
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通過設計在控制器/ helpers.rb定義(在寶石)。我在視圖或控制器中將它作爲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 %>
有誰知道我能得到它的成功存根CURRENT_USER,我m在這裏損失...
謝謝
'@ user'是測試雙/模擬模型嗎? – 2013-02-25 12:05:45
嗨,這是一個FactoryGirl創建的模型。 – bobomoreno 2013-02-25 12:13:25
你可以發佈任何其他相關的代碼,比如你的'User'工廠,或者你如何訪問'current_user'(通過方法調用'current_user'或實例變量'@ current_user' ...),也許您試圖存根的視圖代碼片段。此外,不要做任何SO答案[這裏](http://stackoverflow.com/q/12329515/567863)或[這裏](http://stackoverflow.com/q/10537932/567863),或[這個博客(http://blog.joeygeiger.com/2012/03/30/rspec-view-spec-and-dealing-with-current_user/)幫助你? – 2013-02-25 12:31:16