在rails应用中,如果我为移动设备使用不同的请求格式。例如渲染* .mobile.erb。为此编写测试的最佳实践是什么?我使用RSpec,但无法找到有关如何强制它呈现移动视图的信息。
答案 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)
我不知道确切的答案,只是将请求标题的用户代理更改为移动设备的用户代理