[英]Test view correctly rendered in Rspec
如何在RSpec中執行以下操作?
test "should get home" do
get :home
assert_response :success
get :home, { mobile: 1 }
assert_response :success
end
請注意,我的移動視圖具有不同的mime類型(即.mobile.erb)
嘗試失敗:
render_views
describe "GET home" do
it "renders the index view" do
get :home
expect(response).to render_template("home")
get :home, { mobile: 1 }
expect(response).to render_template("home")
end
end
如果我中斷移動視圖,則該測試不會失敗。
要檢查請求是否成功,可以使用:
it { is_expected.to respond_with 200 }
由於最佳實踐是每個測試只有一個期望 ,因此我將您的示例重構為以下形式:
describe "GET home" do
render_views
context 'with regular view' do
before do
get :home
end
it { is_expected.to respond_with 200 }
it "renders the index view" do
expect(page).to have_content 'some header'
end
end
context 'with mobile view' do
before do
get :home, { mobile: 1 }
end
it { is_expected.to respond_with 200 }
it "renders the index view" do
expect(page).to have_content 'some header'
end
end
end
那只是您開始的想法。
您可以嘗試以下方法:
expect(response).to be_success
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.