2

有什么好方法可以用 rspec 测试控制器吗?实际上,我正在使用 rack/test 测试完整的输出(包括渲染视图)。

以下面的最小控制器为例:

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

什么是测试的最佳选择,本地哈希中的值是否像我期望的那样?

4

1 回答 1

2

对于这种情况,您似乎想要测试:a) DateTime.now 为您提供一个有效值 - 直接使用经典 rspec 进行测试。b) var some_var 被传递给 render,但这是微不足道的。

听起来您可能真的想单独测试视图。像这样的东西(未经测试):

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 
于 2011-10-11T23:32:25.487 回答