2011-03-29 2 views
1

rspec으로 컨트롤러를 테스트 할 수있는 좋은 방법이 있습니까? 사실, rack/test를 사용하여 렌더링 된 뷰를 포함한 전체 출력을 테스트하고 있습니다. 나는 그들을 것으로 예상처럼 지역 주민의 값은 해시 것으로,보기를 테스트하지 않고 sinatra (padrino) 컨트롤러를 테스트하려면 어떻게해야합니까?

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 

은 무엇 테스트하는 가장 좋은 옵션이 될 것입니다 :

예를 들어 다음과 같은 최소한의 컨트롤러를 가지고?

답변

2

이 경우에는 다음을 테스트하려는 것 같습니다. a) DateTime.now는 올바른 값을 제공합니다. 클래식 rspec을 직접 사용하여 테스트하십시오. b) var 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 
관련 문제