RSpec 子域路径测试失败
RSpec tests fails with subdomain path
我无法为 RSpec 提供带有子域的路径。
测试路径应该是api.example.com/public/v1/regions/origin?title=indm
但是我不知道如何为RSpec提供这样的路径。如何将子域 api
指向此相对路径?
let(:api_path) { 'public/v1/regions/origin?title=indm' }
log
1) Regions Public API GET /v1/regions/origin?title=? returns 200 status code
Failure/Error: get api_path
ActionController::RoutingError:
No route matches [GET] "/public/v1/regions/origin"
# ./spec/api/public/v1/regions_spec.rb:14:in `block (3 levels) in <top (required)>'
routes.rb
namespace :api, path: '', constraints: {subdomain: 'api'} do
namespace :public, defaults: { format: :json } do
namespace :v1 do
resources :regions do
get :origin, on: :collection
get :destination, on: :collection
end
end
end
end
我不知道解决这个问题的真正好方法,但我使用 pow
服务器和 Anvil 做到了。
我已经安装了 Anvil 和域为 orca.dev
的 运行 服务器。在此之后,我重新配置了我的 RSpec 测试路线。
spec_helper.rb
def get_api_path path, *args
get "http://api.orca.dev#{path}", *args
end
regions_spec.rb
before do
get_api_path '/public/v1/regions/origin?title=indm'
end
现在测试正常!
我无法为 RSpec 提供带有子域的路径。
测试路径应该是api.example.com/public/v1/regions/origin?title=indm
但是我不知道如何为RSpec提供这样的路径。如何将子域 api
指向此相对路径?
let(:api_path) { 'public/v1/regions/origin?title=indm' }
log
1) Regions Public API GET /v1/regions/origin?title=? returns 200 status code
Failure/Error: get api_path
ActionController::RoutingError:
No route matches [GET] "/public/v1/regions/origin"
# ./spec/api/public/v1/regions_spec.rb:14:in `block (3 levels) in <top (required)>'
routes.rb
namespace :api, path: '', constraints: {subdomain: 'api'} do
namespace :public, defaults: { format: :json } do
namespace :v1 do
resources :regions do
get :origin, on: :collection
get :destination, on: :collection
end
end
end
end
我不知道解决这个问题的真正好方法,但我使用 pow
服务器和 Anvil 做到了。
我已经安装了 Anvil 和域为 orca.dev
的 运行 服务器。在此之后,我重新配置了我的 RSpec 测试路线。
spec_helper.rb
def get_api_path path, *args
get "http://api.orca.dev#{path}", *args
end
regions_spec.rb
before do
get_api_path '/public/v1/regions/origin?title=indm'
end
现在测试正常!