Учитывая следующий контроллер:Запрос спецификаций: как создать нового пользователя через запрос POST?
class UsersController < ApplicationController
include ActionController::ImplicitRender
include ActionController::ParamsWrapper
wrap_parameters format: :json
# POST /users
# POST /users.json
def create
#@user = User.new(params[:user])
@user = User.new(user_params)
if @user.save
render json: @user, status: :created, location: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
private
def user_params
params.require(:user).permit(:name, :email)
end
end
Я могу создать новый пользователь, отправив запрос HTTP POST с CURL:
curl -H "Content-Type: application/json" -d '{"name":"xyz","email":"[email protected]"}' http://myrailsapp.dev/users
Как бы я крафт запроса SPEC соответственно?
# spec/requests/users_spec.rb
describe "POST /users" do
it "should create a new user" do
# FILL ME IN
expect(response).to have_http_status(200)
end
end
Моя первая идея состояла в том, чтобы добавить следующее:
post users_path, body: '{"name":"xyz","email":"[email protected]"}'
который приводит в состояние HTTP 400.
http://stackoverflow.com/questions/14775998/posting-raw-json-data-with-rails-3-2-11-and -rspec –
, который зафиксировал его. Если вы напишете это как ответ, я приму это. – jottr
yes its down there –