2012-02-17 6 views
8

Mam problemy z pobieraniem moich testów routingu rspec z ograniczeniem subdomeny.testowanie tras z ograniczeniami subdomeny za pomocą rspec

Konkretnie mam trasy

constraints :subdomain => "api" do 
    resources :sign_ups, :only => [:create] 
end 

i (między innymi) test

it "does allow creation of sign ups" do 
    {:post => "/sign_ups"}.should route_to(
    :controller => "sign_ups", 
    :action => "create", 
) 
end 

Jeśli usunąć ograniczenie subdomeny przechodzi ten test, ale z nim to się nie powiedzie. Muszę powiedzieć rspec używać subdomenę, ale jestem ze stratą, jak

TIA

Andy

Odpowiedz

25

zwykle zrobić:

let(:url)  { "http://api.domain.com"  } 
let(:bad_url) { "http://bad_url.domain.com" } 

it "does allow creation of sign ups" do 
    {:post => "#{url}/sign_ups"}.should route_to(
    :controller => "sign_ups", 
    :action => "create", 
) 
end 

it "should not route" do 
    {:post => "#{bad_url}/sign_ups"}.should_not route_to(
    :controller => "sign_ups", 
    :action => "create", 
) 
end 
+0

Awesome, który działa, dzięki. Nie miałem pojęcia, że ​​mógłbym użyć pełnego adresu URL. – Andy

+0

Pamiętam, że ta informacja nie była oczywista i odczułem pewien ból, aby ją uzyskać;) – apneadiving

+0

Crikey, to wydaje się dużo pracy, jeśli zmieniasz istniejącą aplikację. – toxaq