0
我想使用Rails的RPEC航線規格根據不同的用戶代理,以測試不同的路由,我無法找到正確的方法或反對存根。如何設置用戶代理在rspec的路線斷言
我的方法是這樣的:
require "spec_helper"
describe "articles routing" do
describe "/articles/#slug" do
it "routes to Articles#show" do
get("/articles/fancy-slug").should route_to(controller: "articles",
action: "show",
id: "fancy-slug")
end
describe "when you have an iphone user agent" do
before(:each) do
# SOMETHING MAGICAL HAPPENS ALONG THE LINES OF THE LINE BELOW
# request.user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25"
end
it "routes to Mobile::Articles#show" do
expect(get: "/articles/fancy-slug").to route_to(controller: "mobile_articles",
action: "show",
id: "fancy-slug")
end
end
end
end
但對我的生活,我無法弄清楚如何存根請求,或控制器,或者別的什麼東西。大多數現有的文件似乎指的是get
語法的舊/過時的版本。
這是非常接近!我得到了什麼工作是:'ActionDispatch :: Request.any_instance.stubs(:USER_AGENT).returns(「Mozilla的/ 5.0(iPhone; CPU iPhone OS 6_1_3,例如Mac OS X)爲AppleWebKit/536.26(KHTML,例如Gecko)版本/ 6.0移動/ 10B329 Safari瀏覽器/ 8536.25" )' – earnold
真棒!這個語法對我來說看起來有點不熟悉;如果我問你正在使用哪種版本的rspec,你介意嗎? – gregates
我使用摩卡,其語法略有不同。 – earnold