Как протестировать контроллер sinatra (падрино) без проверки зрения? - PullRequest
1 голос
/ 29 марта 2011

Есть ли хороший способ проверить контроллер с помощью rspec?На самом деле, я тестирую полный вывод (включая визуализированный вид) с помощью стойки / теста.

Возьмем, к примеру, следующий минимальный контроллер:

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

Каков наилучший вариант дляпроверить, что значения в хеш-коде локальных операторов соответствуют ожиданиям?

1 Ответ

2 голосов
/ 12 октября 2011

В этом случае, кажется, вы хотите проверить: a) DateTime.now дает вам правильное значение - тест, который напрямую использует классическую rspec.б) переменная some_var передается для рендеринга, но это тривиально.

Звучит так, как будто вы действительно хотите проверить представление изолированно.Что-то вроде этого (не проверено):

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 
...