使用Rails 4.2.3,Rspec 3
我希望将post params传递给假的Rack应用程序,以便在我的测试中做出相应的响应。
我的假应用:
# spec/support/fake_mangopay.rb
class FakeMangopay < Sinatra::Base
attr_accessor :user
post '/:version/oauth/token' do
json_response :post, 200, 'token.json'
end
...
private
def json_response(method, response_code, file_name)
content_type :json
status response_code
File.open("#{File.dirname(__FILE__)}/fixtures/mangopay/#{method}/#{file_name}", 'rb').read
end
end
我如何存根请求:
# spec/spec_helper
config.before(:each) do
stub_request(:any, /api.sandbox.mangopay.com/).to_rack(FakeMangopay)
...
end
我目前有简单(和静态)JSON文件,我想让它们成为json.erb文件。 但我不知道如何获得这些帖子参数..
帮助?
答案 0 :(得分:0)
发现我可以访问request.body
以获得我想要的内容。
params = JSON.parse request.body.read