Mam pytanie, które jest naprawdę konkretne. Nie chcę wykonywać testu kontrolera, ale test żądania. I nie chcę używać Capybary, ponieważ nie chcę testować interakcji użytkownika, ale tylko stany odpowiedzi.Jak zmienić poddomeny w testach żądań z Rspec (do testów API)
Mam następujący test pod SPEC/wnioski/api/garage_spec.rb
require 'spec_helper'
describe "Garages" do
describe "index" do
it "should return status 200" do
get 'http://api.localhost.dev/garages'
response.status.should be(200)
response.body.should_not be_empty
end
end
end
To działa. Ale ponieważ muszę zrobić więcej testów ... czy jest jakiś sposób, aby tego uniknąć? http://api.localhost.dev
Próbowałem z setup { host! 'api.localhost.dev' }
Ale to nic nie robi. A before(:each)
ustawienie bloku @request.host
na coś, oczywiście zawiesza się, ponieważ @request
jest zerowy przed wykonaniem jakiegokolwiek żądania http.
Trasy są ustawione poprawnie (aw rzeczywistości pracują) w ten sposób
namespace :api, path: '/', constraints: { subdomain: 'api' } do
resources :garages, only: :index
end
ciekawy pomysł. Ale w ten sposób każde działanie powinno mieć własnego pomocnika. Mogę przestać pisać więcej kodu niż ten, który chcę wyschnąć! –
@ jonnyjava.net Myślałem, że domena jest taka sama we wszystkich testach ... –
Spróbowałem i spodobało mi się! Wygrałeś! Dziękuję Ci –