在我的一個測試中,我必須驗證某個offer是否返回404響應,如果可用限制(例如該offer的10個席位)全部售出,或者它已經到期了,這是第一次。rails請求規格json的PUT方法沒有通過
我只是不能PUT請求中請求規格的工作,這是我的代碼
RSpec.describe "Offers", type: :request do
describe "gives not found response" do
it "when available limit exhausts before date till available" do
offer = Offer.new
Timecop.freeze(Date.today - 12.days) do
offer = FactoryGirl.create(:offer)
end
payload = FactoryGirl.attributes_for(:offer, :available_limit => 0, :discount_id => offer.discount.id, :coupon_id => offer.coupon.id)
sign_in
put '/offers/'<<offer.id, params: { id: offer.id, offer: payload }, as: :json
get "/vouchers/"<<offer.coupon.voucher_code
expect(response.status).to eq 404
end
end
end
針地說,我已經嘗試了許多黑客攻擊,包括
put '/offers/'<<offer.id.to_s<<".json", params: { offer: payload }
甚至
put '/offers/'<<offer.id.to_s<<".json", payload
我還注意到,在其中一個組合中,請求確實通過了,但它響應H兩塊HTML和JSON格式,導致規範錯誤,因爲我不是在水豚運行它們(我不想要麼)
'format::json'在最近的版本中已經改成'as::json',我不認爲這是因爲那個破壞 –