Ho una domanda che è veramente specifica. Non voglio fare un test del controller ma un test delle richieste. E non voglio usare Capybara perché non voglio testare l'interazione dell'utente ma solo gli stati di risposta.Come modificare il sottodominio nel test delle richieste con Rspec (per test API)
Ho la seguente prova in spec/richieste/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
Questo funziona. Ma come devo fare più test .. c'è un modo per evitare di ripetere questo? http://api.localhost.dev
Ho provato con setup { host! 'api.localhost.dev' }
Ma non fa nulla. Un blocco @request.host
di blocco @request.host
a qualcosa, naturalmente si blocca perché @request
è nullo prima di eseguire qualsiasi richiesta http.
I percorsi sono impostate correttamente (e di fatto lavorano) in questo modo
namespace :api, path: '/', constraints: { subdomain: 'api' } do
resources :garages, only: :index
end
Idea interessante. Ma in questo modo ogni azione dovrebbe avere il proprio aiuto. Potrei finire di scrivere più codice di quello che voglio asciugare! –
@ jonnyjava.net Ho pensato che il dominio fosse lo stesso in tutti i test ... –
L'ho provato, e mi è piaciuto! Hai vinto! Grazie –