redirect_to browse_path(asset.parent_id), notice: "successfully created file!", status: 201
201是應該在創建資源時設置的狀態。雖然上述方法適用於創建操作,其行爲規範不再做:設置http狀態代碼
subject { response }
describe '.create' do
context 'when orphan' do
before do
post :create, asset: { parent_id: nil, uploaded_file: file }
end
it { should have_http_status 201 }
it { should redirect_to '/' }
end
end
狀態期望通過,但redirect_to的期望失敗:
Expected response to be a <redirect>, but was <201>
我承認,它不再一個302重定向,但它仍然將用戶重定向到一個新的路由(我想測試)。該redirect_to的規範通過,如果我將它設置爲302的「錯誤」的代碼,而不是201:
redirect_to browse_path(asset.parent_id), notice: "successfully created file!", status: 302
所以我應該與設置狀態代碼煩惱呢?我承認我實際上並不知道瀏覽器如何使用它們,並且我的應用程序的功能同樣如此,如果我刻意將它們設置在我的操作中或不這樣做(僅使用302重定向和200次成功)。
如果狀態碼很重要,應該如何讓我的上述規格通過?
我得到'錯誤數量的參數(2爲1)'? – Starkers