5

application_helper.rbに次のコードがあるとします。

def do_something
 if action_name == 'index'
   'do'
 else
   'dont'
 end
end

index アクション内で呼び出された場合に何かを実行します。

Q: 'index' アクションからの呼び出しをシミュレートするために、 application_helper_spec.rbでこのヘルパー仕様を書き直すにはどうすればよいですか?

describe 'when called from "index" action' do
  it 'should do' do
    helper.do_something.should == 'do' # will always return 'dont'
  end
end

describe 'when called from "other" action' do
  it 'should do' do
    helper.do_something.should == 'dont'
  end
end
4

1 に答える 1

7

action_name メソッドを任意の値にスタブできます。

describe 'when called from "index" action' do
  before
    helper.stub!(:action_name).and_return('index')
  end
  it 'should do' do
    helper.do_something.should == 'do'
  end
end

describe 'when called from "other" action' do
  before
    helper.stub!(:action_name).and_return('other')
  end
  it 'should do' do
    helper.do_something.should == 'dont'
  end
end
于 2008-11-11T12:19:55.343 に答える