Rspec使用Grape

时间:2017-06-01 09:41:43

标签: arrays ruby rspec grape

我有一个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一样)。

1 个答案:

答案 0 :(得分:2)

使用params.to_json并将标题'CONTENT_TYPE'设置为'application / json'