Skip to content

Instantly share code, notes, and snippets.

@jc00ke
Created May 9, 2011 23:37
Show Gist options
  • Save jc00ke/963647 to your computer and use it in GitHub Desktop.
Save jc00ke/963647 to your computer and use it in GitHub Desktop.
Stubbing controller_name & action_name in Rails 3 with rspec 2.5
module ApplicationHelper
def foo
controller_name == 'widgets' && action_name == 'index'
end
end
require 'spec_helper'
describe ApplicationHelper do
describe '#foo' do
context "on Widgets#index" do
it "returns true" do
controller.stub(:controller_name).and_return('widgets')
controller.stub(:action_name).and_return('index')
helper.foo.should be_true
end
end
context "not on Widgets#index" do
it "returns false" do
controller.stub(:controller_name).and_return('widgets')
controller.stub(:action_name).and_return('show')
helper.foo.should be_false
end
end
end
end
@jsugarman
Copy link

Worked for me when above did not - a rails 6, rspec 3.9 - in spec/helpers/my_helper_spec.rb

before do
  allow(controller).to receive(:controller_name).and_return 'Widgets'
  allow(controller).to receive(:action_name).and_return 'show'
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment