我正在尝试将JSON post请求中的一些原始数据发送到我的RSpec控制器测试。我已经使用实际的Postman请求成功测试了控制器,但我无法让Rspec测试工作
我得到的错误是
param is missing or the value is empty: annotations
这是我的测试设置,当我通过Postman运行请求时,我已经从rails服务器日志中逐字复制了
params = '{annotations"=>[{"id"=>1, "location_start"=>1, "location_end"=>3, "source_text"=>"what", "reading"=>"cool"}, {"id"=>2, "location_start"=>1, "location_end"=>-1, "reading"=>"cool"}]}'
patch :update, params, format: :json
我也试过
params = {:annotations => [{ :id=>1, :location_start=>1, :location_end=>3}]}
patch :update, params.to_json
答案 0 :(得分:1)
在这个例子中查看json体的定义方式:它是一个ruby哈希!所以你不需要尝试传入一个原始字符串,而是一个Hash然后自动转换为JSON。
希望能帮到你