测试rails应用程序的移动视图

时间:2011-04-24 23:13:10

标签: ruby-on-rails tdd rspec

在rails应用中,如果我为移动设备使用不同的请求格式。例如渲染* .mobile.erb。为此编写测试的最佳实践是什么?我使用RSpec,但无法找到有关如何强制它呈现移动视图的信息。

2 个答案:

答案 0 :(得分:4)

我假设您的意思是视图规范(而不是集成测试)? RSpec2的render方法委托给ActionView::Base#render,因此您可以将:file,:template,:format等传递给视图规范中的render。更好的方法可能是在描述规范时指定正确的视图(例如rpec形式RSpec2的网站):

describe "events/index.mobile.erb" do
  it "renders _event partial for each event" do
    assign(:events, [stub_model(Event), stub_model(Event)])
    render
    view.should render_template(:partial => "_event", :count => 2)
  end
end

对于集成测试,您需要设置用户代理。这是指向更改用户代理的另一个问题的链接(RSpec也是如此):Is it possible to specify a user agent in a rails integration test or spec?

祝你好运!

答案 1 :(得分:0)

我不知道确切的答案,只是将请求标题的用户代理更改为移动设备的用户代理