0
在我的規範中,當我在下面運行POST請求時,一切正常。在Rspec PUT中接收未定義的方法錯誤調用
before do
request_payload = {
player: {
first_name: "Joe",
last_name: "Carradine",
team_id: "1"
}
}
post :create, request_payload
end
但是當我運行了把規格:
before do
request_payload = {
player: {
first_name: "Buck",
last_name: "Carradine",
team_id: "1"
}
}
put :update, { id: 3 }, request_payload
end
我得到這樣的錯誤:
Failure/Error: put :update, { id: 1 }, request_payload
NoMethodError:
undefined method `[]' for nil:NilClass
我無法弄清楚什麼是被認爲是零。此API調用在REST客戶端中正常工作。
這是基於以前的一個SO問題的另一個錯誤:Receiving error in RSpec for PUT, but not POST
如果你這樣做:'put:update,{id:3} .merg e(request_payload)' – apneadiving
這工作(謝謝,你可以添加爲答案?),但鑑於id哈希代表的值來自URL而不是有效載荷,這種技術是一個很好的測試? – wrburgess
實際上,通過表單傳遞的每一個數據都可以通過參數獲得,所以你不會在那裏作弊。 – apneadiving