我有一个Ruby(非Rails)应用程序,它使用Grape来公开API端点。其中一个端点需要一个值数组的参数,但也接受一个空数组:
requires :user_ids, type: Array, allow_blank: true
使用Curl或Postman手动测试端点时,一切正常 - 空数组被正确解释为参数user_ids: []
。但是,当rspec的值是一个空数组时,rspec似乎省略了整个参数(非空数组当然可以正常工作):
let(:params) { { user_ids: [] } }
let(:route) { post "api/users/remove", params }
在这种情况下,实际通过等于{}
和Grape的requires
保护的params开始,不允许端点执行任何操作。
不确定它是否是错误或功能以及如何强制rspec将此空数组作为参数传递(与rspec 3.4和3.6一样)。
答案 0 :(得分:2)
使用params.to_json
并将标题'CONTENT_TYPE'设置为'application / json'