2012-04-17 21 views
7

Sto sviluppando un'applicazione che si basa molto sui sottodomini. Ha un'applicazione incorporata nell'applicazione (un modulo) che sarà un back-end per amministrare l'applicazione. Diamo il nome kong.Rails: Come testare i sottodomini con RSpec

Ho questo codice nel mio file rotte:

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

Come posso provare questo percorso in modo che quando scrivo qualcosa come il seguente che scarica dal sottodominio e solo dal sottodominio:

get :index 

risposta

5

In unità di prova ho usato qualcosa di simile per impostare il request.host provenire da un sottodominio:

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

Personalmente lo inserisco nel file spec_helper.rb e si riferisce quando è necessario.

Per voi, in questi test, si sta impostando sub per eguagliare "kong" probabilmente come

before :each do 
    get_sub("kong") 
end 

Questo jolly ha anche una risposta troppo, che ho trovato dopo through google

+7

Perché hai chiamato questo metodo 'get_sub' quando è chiaramente impostato un valore? Inoltre, perché accorciarlo? 'set_subdomain' o' stub_subdomain' sarebbero dei nomi eccellenti per questo metodo. –

+2

Credo che nel perfetto mondo del senno di poi, avrei chiamato "set_subdomain" ma pedante a parte, la risposta funziona ancora. l'OP può cambiare il metodo in base a ciò che sceglie. – pjammer

+5

nota che questo non funzionerà nelle specifiche di instradamento, dato che '@ request' sarà nil – lulalala

Problemi correlati