2012-04-17 15 views
7

Estoy desarrollando una aplicación que depende en gran medida de subdominios. Tiene una aplicación integrada en la aplicación (un módulo) que será un back-end para administrar la aplicación. Vamos a llamarlo kong.Rieles: Cómo probar subdominios con RSpec

tengo este código en mi archivo de rutas:

constraints :subdomain => "kong" do 
    scope :module => "kong", :as => "kong" do 
    resources :clients 
    end 
end 

¿Cómo puedo probar esta ruta de manera que cuando escribo algo como lo siguiente que va a buscar desde el subdominio y sólo desde el subdominio:

get :index 

Respuesta

5

En unidad de prueba he usado algo como esto para establecer el request.host que venir de un subdominio:

def get_sub(sub = "one") 
    @request.host = "#{sub}.local.me" 
end 

Yo personalmente pondría eso en el archivo spec_helper.rb y la referencia cuando lo necesite.

Para que, en estas pruebas, se está configurando sub para igualar "kong" probablemente como

before :each do 
    get_sub("kong") 
end 

Este comodín también tiene una respuesta también, que he encontrado después de through google

+7

¿Por qué se llama a este método 'get_sub' cuando está definiendo claramente un valor? Además, ¿por qué acortarlo? 'set_subdomain' o' stub_subdomain' serían excelentes nombres para este método. –

+2

Supongo que en el mundo de la retrospectiva perfecta, lo habría llamado 'set_subdomain' pero pedantic a un lado, la respuesta todavía funciona. el OP puede cambiar el método a lo que elija. – pjammer

+5

tenga en cuenta que esto no funcionará en las especificaciones de enrutamiento, ya que '@ request' será nulo – lulalala

Cuestiones relacionadas