2011-01-07 16 views
18

Sono nuovo Rspec e ho appena iniziato a generare un nuovo controller su Rails 3. Generano alcuni test Rspec per impostazione predefinita. Ho una domanda su come farli passare però. Così com'è, io vedo questo test nel mio terminale"Errore "Nessuna corrispondenza"?

1) BuildingsController GET 'show' dovrebbe avere successo

Failure/Error: get 'show' 
No route matches {:controller=>"buildings", :action=>"show"} 
# ./spec/controllers/buildings_controller_spec.rb:17:in `block (3 levels) in <top (required)>' 

Tuttavia, non capisco il motivo per cui è venuta a causa ho già questo percorso creato ("risorse: edifici"), e mi sono imbattuto rake routes e fatto in modo che c'è

edificio GET /buildings/:id(.:format) {:. "show" action => , : controller => "edifici"}

Cosa è necessario per effettuare questo passaggio? Ecco il test per la via:

describe "GET 'show'" do 
    it "should be successful" do 
     get 'show' 
     response.should be_success 
    end 
    end 

risposta

38

È necessario passare id di edificio esistente: get :show, :id => @building.id

Itinerari lamentano perché :id non è un optional.

+4

Si potrebbe anche avere un problema se l'ID deve essere esplicito nel percorso: 'get: show,: building_id => @ building.id' – you786

Problemi correlati