2012-04-17 26 views
7

Pracuję nad aplikacją, która w dużym stopniu opiera się na subdomenach. Ma aplikację osadzoną w aplikacji (module), która będzie zapleczem do administrowania aplikacją. Nazwijmy to kong.Szyny: Jak testować poddomeny za pomocą RSpec

Mam ten kod w moim pliku trasach:

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

Jak mogę przetestować tę drogę tak, że kiedy piszę coś jak następuje to pobiera od subdomeny i tylko z subdomeny:

get :index 

Odpowiedz

5

W testowanej jednostki kiedyś coś takiego, aby ustawić request.host pochodzić z subdomeny:

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

Osobiście wstawiłbym to do pliku spec_helper.rb i odsyłając, gdy jest taka potrzeba.

Dla was w tych testach, jesteś ustawienie sub równa "kong" prawdopodobnie jak

before :each do 
    get_sub("kong") 
end 

Ten pajac ma również odpowiedź też, co znalazłem po through google

+7

Dlaczego nazywają tę metodę 'get_sub', gdy jasno ustawia wartość? A także, dlaczego je skracać? 'set_subdomain' lub' stub_subdomain' będzie znakomitymi nazwami dla tej metody. –

+2

Sądzę, że w idealnym świecie z perspektywy czasu, nazwałbym go "set_subdomain", ale na dodatek pedantycznym, odpowiedź nadal działa. OP może zmienić metodę na dowolnie wybraną. – pjammer

+5

Pamiętaj, że to nie zadziała w specyfikacjach routingu, ponieważ '@ request' będzie zerowe – lulalala

Powiązane problemy