我在用着机架::测试 https://github.com/brynary/rack-test测试我的应用程序并需要测试通过 AJAX 发布数据。
我的测试看起来像:
describe 'POST /user/' do
include Rack::Test::Methods
it 'must allow user registration with valid information' do
post '/user', {
username: 'test_reg',
password: 'test_pass',
email: '[email protected] /cdn-cgi/l/email-protection'
}.to_json, {"CONTENT_TYPE" => 'application/json', "HTTP_X_REQUESTED_WITH" => "XMLHttpRequest"}
last_response.must_be :ok?
last_response.body.must_match 'test_reg has been saved'
end
end
但在服务器端它没有接收到 POST 的数据。
我也尝试只传递参数哈希而不使用to_json
但这没有什么区别。
知道如何做到这一点吗?
您的发布端点必须解析发布的 JSON 正文本身,我假设您已经这样做了。你能发布你的端点是如何工作的,还有rack-test、rack、ruby和sinatra版本号吗?另请提及您如何测试服务器是否正在接收任何内容——即测试模型可能会混淆您的检测。
post '/user' do
json_data = JSON.parse(request.body.read.to_s)
# or # json_data = JSON.parse(request.env["rack.input"].read)
...
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)