2017-06-01 108 views
1

私はGrapeを使用してAPIエンドポイントを公開するRuby(非Rails)アプリケーションを使用しています。エンドポイントの1つは、値の配列であるパラメータを必要とするが、同様に空の配列を受け入れ:カール又はポストマン使用して手動でエンドポイントをテストする場合、このすべてが正常に動作Rspecは、空の配列をGrapeでパラメータがないと解釈します。

requires :user_ids, type: Array, allow_blank: true 

- 正しくとして解釈され、空の配列をパラメータuser_ids: []。実際に等しい{}とグレープのrequiresガードキックを渡されることparamsは、この場合、

let(:params) { { user_ids: [] } } 
let(:route) { post "api/users/remove", params } 

:しかし、RSpecのは、その値は空の配列(非空の配列が完全もちろん作品)であるとき、この全体のパラメータを省略しているようですエンドポイントに何かを実行させないようにします。

バグや機能であるかどうか、rspecにパラメータとしてこの空の配列を強制的に渡す方法は不明です(rspec 3.4と3.6の両方でこのように動作します)。

+0

'使用params.to_json'及び 'アプリケーション/ JSON' に設定ヘッダ 'CONTENT_TYPE' 試し –

+0

https://github.com/ruby -grape/grape/issues/723 –

+1

@BartoszBonisławskiyup、テストで明示的に設定されているすべての問題を解決しました。それを答えにして、私はそれを最高のものとしてマークします;) – Piaskal

答えて

0

使用params.to_json及び 'アプリケーション/ JSON' に設定ヘッダ 'CONTENT_TYPE'

関連する問題