Ich habe eine Frage, die wirklich spezifisch ist. Ich möchte keinen Controller-Test machen, sondern einen Anfrage-Test. Und ich möchte Capybara nicht verwenden, weil ich die Benutzerinteraktion nicht testen möchte, sondern nur den Status der Reaktion.Wie Subdomain im Anforderungstest mit Rspec ändern (für API-Test)
Ich habe den folgenden Test unter spec/Anfragen/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
Dies funktioniert. Aber da ich noch mehr Tests machen muss ... gibt es eine Möglichkeit dies zu vermeiden? http://api.localhost.dev
Ich versuchte mit setup { host! 'api.localhost.dev' }
Aber es tut nichts. Eine before(:each)
Blockeinstellung @request.host
zu etwas, natürlich stürzt ab, weil @request
ist Null vor dem Ausführen einer HTTP-Anfrage.
Die Routen sind korrekt (und in der Tat sie arbeiten), die in dieser Art und Weise
namespace :api, path: '/', constraints: { subdomain: 'api' } do
resources :garages, only: :index
end
Interessante Idee. Aber auf diese Weise sollte jede Aktion ihren eigenen Helfer haben. Ich könnte mehr Code schreiben als den, den ich trocknen möchte! –
@ jonnyjava.net Ich dachte, die Domain ist über alle Tests gleich ... –
Ich habe es versucht, und ich mochte! Du gewinnst! Vielen Dank –