我已經寫在軌葡萄API更新操作,如下所示:葡萄API Put請求接收405錯誤只RSPEC
put do
work = Work.find(permitted_params[:id])
work.title = permitted_params[:title]
work.date = permitted_params[:date]
work.save!
end
測試它與招搖文檔在瀏覽器中,我得到成功。
我有一個規範,它工作不正確。儘管瀏覽器取得了成功,但我的測試失敗了,因爲它表示它在響應中獲得了405分。這是規範:
describe "PUT /api/v1/works/work_id" do
let(:user) { FactoryGirl.create(:user) }
let(:collection) { FactoryGirl.create(:collection, user: user) }
let(:work) { FactoryGirl.create(:work, collection: collection) }
let(:work_data) do
{
collection: collection.id,
title: "Lorem ipsum dolor sit amet",
date: 1492,
place: "Chicago",
}
end
describe "Modify title" do
let(:work_title) { "gfd" }
before :each do
work_data[:title] = work_title
put "/api/v1/works/#{work.id}", work_data
work.reload
end
it "returns success" do
expect(response).to be_success
end
it "updates the title of the work" do
expect(work.title).to eql(work_title)
end
end
end
我很好奇爲什麼它似乎工作正常,但我仍然在我的測試中得到一個405錯誤。
編輯以包括從所述服務器響應 { 「X框-選項」=> 「SAMEORIGIN」, 「X-XSS-保護」=> 「1;模式=塊」,「 X-Content-Type-Options「=>」nosniff「,」Allow「=>」OPTIONS,GET,HEAD「,」Content-Type「=>」text/plain「,」Content-Length「=>」0「 ,「Cache-Control」=>「no-cache」,「X-Request-Id」=>「5edd38be-289d-4e97-875d-2461389a746d」,「X-Runtime」=>「0.088867」} #
請張貼測試日誌上述要求。他們在'logs/test.log'中可用 – bsvin33t
這看起來像我大多是垃圾,我無法真正理解。有沒有可以添加的寶石來提高讀數?只需在日誌中打印出響應,我就能確定405錯誤。 – amhasler
您可以刪除日誌並重新運行一個可以提供405的規格。從中可以看到單個請求的失敗消息。 – bsvin33t