2011-04-24 79 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

我不知道確切的答案,但只是改變請求的報頭的用戶代理到移動的用戶代理