2011-03-29 6 views
1

est-il un bon moyen de tester un contrôleur avec rspec? En fait, je teste la sortie complète (y compris la vue rendue) avec rack/test.Comment tester un contrôleur sinatra (padrino) sans tester la vue?

Prenez le contrôleur minimum suivant par exemple:

MyApp.controllers :cool_controller do 

    get :index do 
    some_var = DateTime.now 
    render 'some_view', :locals => { :dont_know => nil, :some_var => some_var } 
    end 

end 

Quelle serait la meilleure option pour tester, que les valeurs dans les sections locales de hachage sont comme je les attends à être?

Répondre

2

Pour ce cas, il semble que vous voulez tester: a) DateTime.now vous donne une valeur valide - test qui utilise directement rspec classique. b) la variable var some_var est passée à rendre, mais c'est trivial.

Il semble que vous souhaitiez tester la vue de manière isolée. Quelque chose comme ceci (non testé):

it 'shows the time now' do 
    right_now = DateTime.now 
    engine = Haml::Engine.new(IO.read('some_view.haml')) 
    rendered = engine.render(Object.new, :@some_var => right_now) 
    rendered.should have_css('ul#some_var li', :text => right_now) 
end 
Questions connexes