1
我用葡萄在我的rails應用程序中創建api。葡萄rspec上傳
現在我想測試我所有的API。在我的api中,我可以上傳聲音,獲取聲音/:id並刪除聲音/:id。
我開始寫帖子的聲音,但我的測試所有的時間回測試「未定義的方法[]爲無:NilClass」。
我上傳curl命令(這工作):
curl -X POST -i -F [email protected]/test.mp3 "http://localhost:3000/api/sounds/new?access_token=1234567"
我認爲這個問題是在捲曲,當你使用「-F數據=」,你需要「=」如果後添加@我刪除@,我有未定義的方法[]爲nil:NilClass錯誤。
現在我的問題是我怎麼能在我的測試中添加測試上傳文件的@?
我的測試:
it "uploads a file" do
sound_filename = "spec/fixtures/test.mp3"
post "/api/sounds/new", data= Rack::Test::UploadedFile.new(sound_filename, 'audio/mp3', true)
expect(response.status).to eq(201)
expect(response.headers['Content-Type']).to eq("audio/mp3")
expect(response.headers['Content-Disposition']).to eq("attachment; filename*=UTF-8''test.mp3")
end
此測試這個錯誤:未定義的方法[]爲無:NilClass錯誤。任何人都知道我可以修復它嗎?
感謝您的幫助。