2011-01-14 12 views
0

Ich versuche mit der Entwicklung von Ansichtskomponenten mit Rspec2 und Rails3 zu beginnen. Allerdings mache ich die folgende Beobachtung, und ich verstehe nicht, was vor sich geht, und wie man das beheben kann.Rspec2 Teilansicht ergibt Nil: NilClass. Warum?

In meiner spec definiere ich:

 
    describe "main/index.html.erb" do 
    it "displays a photo url in products partial" do 
     assign(:designs, [stub_model(Design, :name => "test", :photo => "photo_url")]) 

     render 
     rendered.should contain("photo_url") 
    end 
    end 

Wenn ich laufen:

rspec spec/view/main_spec.rb 

ich diesen Fehler:

 
    1) main/index.html.erb displays a photo url in products partial 
     Failure/Error: render 
     ActionView::Template::Error: 
     undefined method `photo' for nil:NilClass 
     # ./app/views/main/_design.html.erb:3:in `_app_views_main__design_html_erb__2937334847274155273_2170841960__1566661024965846011' 
     # ./app/views/main/index.html.erb:25:in `_app_views_main_index_html_erb__837234277009287876_2170861440__898201527838028543' 
     # ./spec/views/main_spec.rb:7:in `block (2 levels) in ' 

Allerdings, wenn ich nur 'Zugang' eine lokale Fotoobjekt in meinem Teil alles passiert. Dies ist:

in _design.html.erb:

 
     ---> PASS 
     ---> FAIL 

Meiner Ansicht nach nenne ich meine teilweise wie folgt:

main.html.erb

 
     { :designs => @designs } %> 

Was bedeutet die Gemeinschaft denke? Vielen Dank für Ihre Hilfe!

Antwort

0

Das Problem wurde bereits vor einiger Zeit gelöst.

Es ist wichtig, "Konvention über Konfiguration" zu beachten. In diesem Fall könnte die Spezifikation erstellt werden, indem die Spezifikationsdateien genau den Dateinamen im Ordner "/ app" zugewiesen und am Ende ein _spec.rb hinzugefügt wird. Also, die richtige Spezifikation für den Index erb in Haupt wäre

/spec/views/main/index.erb_spec.rb 
Verwandte Themen