В моем 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)
становится незарегистрированным.