ruby-on-rails – 如何使用RSpec和Rails 4测试子域约束
发布时间:2020-12-17 02:25:53 所属栏目:百科 来源:网络整理
导读:我正在尝试编写一个测试子域约束的??控制器测试.但是,如果子域不准确,我无法让RSpec设置子域并返回错误. 我正在使用Rails 4.2.6和RSpec~3.4 的routes.rb namespace :frontend_api do constraints subdomain: 'frontend-api' do resources :events,only: [:in
我正在尝试编写一个测试子域约束的??控制器测试.但是,如果子域不准确,我无法让RSpec设置子域并返回错误.
我正在使用Rails 4.2.6和RSpec~3.4 的routes.rb namespace :frontend_api do constraints subdomain: 'frontend-api' do resources :events,only: [:index] end end events_controller.rb module FrontendAPI class EventsController < FrontendAPI::BaseController def index render json: [] end end end 规范 RSpec.describe FrontendAPI::EventsController do describe 'GET #index' do context 'wrong subdomain' do before do @request.host = 'foo.example.com' end it 'responds with 404' do get :index expect(response).to have_http_status(:not_found) end end end end 还有其他方法吗? 解决方法
您可以通过在测试中使用完整URL而不是在之前的块中设置主机来实现此目的.
尝试: RSpec.describe FrontendAPI::EventsController do describe 'GET #index' do let(:url) { 'http://subdomain.example.com' } let(:bad_url) { 'http://foo.example.com' } context 'wrong subdomain' do it 'responds with 404' do get "#{bad_url}/route" expect(response).to have_http_status(:not_found) end end end end 这里有一个类似的问题和答案testing routes with subdomain constraints using rspec (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |