2011-04-11 16 views
8

Esto es lo que tengo:RSpec: cómo probar un método de ayuda que llama a un método de ayuda privada desde el controlador?

Un método de ayuda de aplicación que llama a un método de ayudante de controlador (privado) desde él.

Código:

ApplicationHelper:

def ordenar(coluna, titulo = nil) 
    titulo ||= coluna.titleize 
    css_class = (coluna == **coluna_ordenacao**) ? "#{**direcao_ordenacao**}" : "ordenavel" 
    direcao = (coluna == **coluna_ordenacao** and **direcao_ordenacao** == "asc") ? :desc : :asc 
    link_to titulo, {:sort => coluna, :direction => direcao}, {:class => css_class} 
end 

ApplicationController:

helper_method :coluna_ordenacao, :direcao_ordenacao 
private 
def coluna_ordenacao 
    return params[:sort] if params[:sort] and params[:sort].split(' ').size == 1 
    return :created_at 
end 

def direcao_ordenacao 
    return %w[asc desc].include?(params[:direction]) ? params[:direction] : :desc 
end 

Y aquí está el problema: El coluna_ordenacao y direcao_ordenacao métodos no pueden ser llamados desde RSpec me da lo siguiente debido al error:

undefined local variable or method `coluna_ordenacao' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x7fbf0a9fe3d8> 

¿Hay alguna manera de que funcione? Por cierto estoy probando el ayudante, el controlador no

+0

por favor su especificación –

+3

puede haber propósito muestran: http://stackoverflow.com/ preguntas/2448063/how-do-you-test-a-rails-controller-method-exposed-as-a-helper-method – zetetic

Respuesta

Cuestiones relacionadas