2011-04-24 74 views
1

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

回答

4

我假设你的意思是查看规格(相对于集成测试)? RSpec2的render方法委托给ActionView::Base#render,因此您可以在您的视图规范中将:file,:template,:format等传递给render。一个更好的办法可能会是描述规范,像这样的时候只需指定正确的观点(例如撕开形成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?

祝你好运!

+0

谢谢!这正是我所期待的。 – 2011-04-25 14:12:28

0

我不知道确切的答案,但只是改变请求的报头的用户代理到移动的用户代理