мой routes.rbRSpec тестирования POST апи на подобласти
constraints subdomain: 'api' do
namespace :api, path: '/' do
scope '/v1' do
scope '/things' do
post '/', to: 'things#create'
end
end
end
end
Все, что я хочу сделать сейчас тестирует метод POST здесь в RSpec тестирования контроллера:
it 'should create things on a post request' do
post 'create',
{ thing: { foo: bar }.to_json
assert_equal 204, response.status
end
Я в конечном итоге получить это:
Failure/Error: post 'create', ActionController::UrlGenerationError: No route matches {:action=>"create", :controller=>"api/things"}
Я полагаю, что это связано с api
подобласти ограничения, так что я продолжаю пытаться инициализируется субдомена в RSpec:
request.host = 'api.mydevdomain.dev'
Я также попытался включить весь URL в запросе на пост, но без успеха.
Как настроить субдомен в rspec для моего примера выше? Является ли это причиной ошибки или есть другая причина?
Также обратите внимание, что вам не нужно вручную кодировать параметры запроса, на самом деле это может привести к двойным ошибкам кодирования. Просто установите формат и пусть RSpec выполнит свою задачу. – max
Также я не уверен, почему вы получаете этот результат или почему ваша спецификация работает даже при наличии синтаксической ошибки. Но это проверено на работу. – max