在我的application_controller.rb
:
helper_method :current_brand
def current_brand
@brand ||= Brand.find_by_organization_id(current_user.organization_id)
end
在我的帮手something_helper.rb
def brands
return [] unless can? :read, Brand
# current_brand is called
end
我正在编写规范something_helper
并希望存根current_brand
describe SomethingHelper do
before :each do
helper.stub!(:can?).and_return(true) # This stub works
end
it "does the extraordinary" do
brand = Factory.create(:brand)
helper.stub!(:current_brand).and_return(brand) # This stub doesnt work
helper.brands.should_not be_empty
end
end
结果是NameError:
undefined local variable or method 'current_brand' for #<#<Class:0x000001068fd188>:0x0000010316f6f8>
我也尝试过stub!
这样self
做controller
。奇怪的是,当我存根时self
,它helper.stub!(:can?).and_return(true)
会被取消注册。