Rails 测试 post 内容
Rails test post content
Rails 6
如何在 rails 测试中 post header 和 body?
考虑像 this
这样的小费
Rails test/integration
require 'test_helper'
class DataTest < ActionDispatch::IntegrationTest
test "Post Profiles" do
post "/candy/user/profiles", {headers: {:authorization => @session[:authorization]}}, {'RAW_POST_DATA' => 'something'}
end
end
结果
DataTest#test_Post_Profiles:
ArgumentError: wrong number of arguments (given 3, expected 1)
test/integration/candy/data_test.rb:31:in `block in <class:DataTest>'
也没有帮助
无法在控制器中看到 request.raw_post
或 request.body.read
发送的任何 body
def raw_post(action, params, body)
@request.env['RAW_POST_DATA'] = body
response = post(action, params)
@request.env.delete('RAW_POST_DATA')
response
end
Raw post 是请求主体,在现代 rails 你可以为 params
参数传递一个字符串:
post "/candy/user/profiles", headers: {authorization: @session[:authorization]}, params: 'something'
Rails 6
如何在 rails 测试中 post header 和 body?
考虑像 this
这样的小费Rails test/integration
require 'test_helper'
class DataTest < ActionDispatch::IntegrationTest
test "Post Profiles" do
post "/candy/user/profiles", {headers: {:authorization => @session[:authorization]}}, {'RAW_POST_DATA' => 'something'}
end
end
结果
DataTest#test_Post_Profiles:
ArgumentError: wrong number of arguments (given 3, expected 1)
test/integration/candy/data_test.rb:31:in `block in <class:DataTest>'
也没有帮助
无法在控制器中看到 request.raw_post
或 request.body.read
def raw_post(action, params, body)
@request.env['RAW_POST_DATA'] = body
response = post(action, params)
@request.env.delete('RAW_POST_DATA')
response
end
Raw post 是请求主体,在现代 rails 你可以为 params
参数传递一个字符串:
post "/candy/user/profiles", headers: {authorization: @session[:authorization]}, params: 'something'