2008-11-11 12 views
5

Digamos que tengo el siguiente código en application_helper.rb:Fetching 'ACTION_NAME' o 'controlador' de especificación ayudante

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

que hacer algo si se llama dentro de la acción de índice.

P: ¿Cómo reescribo la especificación auxiliar para esto en application_helper_spec.rb para simular una llamada de la acción 'index'?

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 

Respuesta

7

Puede stub ACTION_NAME método para cualquier valor que quiera:

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 
+0

trozo! en helper, ¡maldita vez lo intenté, lo hice! (: action_name) .and_return ('index'), no helper.stub! (: action_name) .and_return ('index') Gracias rsim :) – edthix

Cuestiones relacionadas