Ruby on rails 如何测试RESTAPI请求(rails)
我有Ruby on rails 如何测试RESTAPI请求(rails),ruby-on-rails,Ruby On Rails,我有restapi,例如:我已经创建了REST用户,创建用户的终点是转到“localhost:3000/users”POST方法 所以param的模式应该是这样的: :user => {:name => "apple", :address => "heaven"} 我的问题是: 如何创建上面的模式,然后我用端点POST方法测试它 我已经使用postman客户端进行了测试,但由于模式不正确而失败(错过root:user) 感谢控制器测试将捕获您描述的错误类型,并且比端到端测试更
restapi
,例如:我已经创建了REST用户,创建用户的终点是转到“localhost:3000/users”POST方法
所以param的模式应该是这样的:
:user => {:name => "apple", :address => "heaven"}
我的问题是:
如何创建上面的模式,然后我用端点POST方法测试它
我已经使用postman
客户端进行了测试,但由于模式不正确而失败(错过root:user
)
感谢控制器测试将捕获您描述的错误类型,并且比端到端测试更有效。RSpec中的示例:
it 'creates a new user' do
post :create, user: {name: 'apple', address: 'heaven'}, format: 'json'
assert_response :success
expect(response).to render_template(:create)
expect(assigns(:user).name).to eq('apple')
expect(assigns(:user).address).to eq('heaven')
end
我使用了curl
(在代码中)端到端测试API。这个方法可能也会起作用
对于curl
请求,您需要为数据传递-X POST
参数和-d
参数<代码>-d可以有以下格式:
-d "user[name]=apple" -d "user[address]=heaven"
-d {"user": {"name": "apple", "address": "heaven"}}
您还可以使用-H
传递标题
总共:
curlhttp://your_url -X POST-H“内容类型:应用程序/json”-d{“用户”:{“名称”:“苹果”,“地址”:“天堂”}
感谢Jay的帮助!