2009-08-26 16 views
8

In meinem RSpec Tests simulieren, muss ich eine AJAX GET-Anforderung an den Index Aktion simulieren, und haben den Code wurde, wie in den beiden Rails-Dokumentation und dem RSpec Buch beschrieben:eine XHR-GET-Anfrage

xhr :get, :index 

Dies schlägt jedoch immer fehl, da der Test versucht, die show-Aktion (ohne Parameter) anstelle der angegebenen Indexaktion zu laden.

Die Controller-Aktion ist:

def index  
    @contacts = Contact.all 

    respond_to do |format| 
    format.html 
    format.js { 
     render :update do |page| 
     page.replace_html :contact_search_results, :partial => 'contacts' 
     end 
    } 
    end 
end 

Der Fehler, indem das spec geworfen wird (zeigt die: show-Aktion verwendet wird):

ActionView::TemplateError in 'ContactsController as an administrator user when 
showing the index of contacts' as an AJAX request should render results into the 
contact_search_results element' 

contact_url failed to generate from {:action=>"show", :controller=>"contacts", 
:id=>#<Contact id: nil, first_name: nil, ....>} 

Wer weiß, wie ich eine AJAX simulieren Rufen Sie die Indexaktion in Tests auf?

Dank!

Antwort

2

Eigentlich glaube ich, dass Sie den Fehler missverstehen. Irgendwo auf dem Weg versucht Rails contact_url aufzurufen und die Parameter sind falsch. Mein Verdacht ist, dass es tatsächlich die Indexaktion nennt, die den Kontakt dann teilweise macht. Wenn ich recht habe, ist der Kontakt teilweise der Ort des Problems. Ich würde empfehlen, die Kontakte teilweise auf mögliche Fehler zu überprüfen. Wenn Sie weiterhin Probleme haben, geben Sie bitte den Text Ihrer Kontakte teilweise an.

0

Sie versuchen, eine URL zu einem nicht persistenten Kontaktobjekt zu erstellen. Sie können das in der Nachricht sehen: :id=>#<Contact id: nil

Verwandte Themen