Comment tester un contrôleur Sinatra (Padrino) sans tester la vue?
Question
Existe-t-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.
Prenez le contrôleur minimal 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 à tester, que les valeurs du hachage des habitants sont comme je m'attendais à ce qu'elles soient?
La solution
Pour ce cas, il semble que vous souhaitiez tester: a) DateTime.now vous donne une valeur valide - tester directement en utilisant RSPEC classique. b) Le var quelque_var est transmis pour rendre, mais c'est trivial.
Il semble que vous voudrez peut-être tester la vue isolément. Quelque chose comme ça (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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow