2017-06-19 3 views
0

Hallo: Ich bin seit einigen Tagen auf diesem Test mit Capybara fest und kann keine Lösung erarbeiten.Capybara nicht rendering .js.erb

1) Mein Ajax-Ereignis löst die Anforderung erfolgreich: einigen DOM Modifikation hat kurze unter Verwendung von AJAX, langer Geschichte zu

$.ajax({ url: 'nice_url', data: data, complete: function() {debugger} 
}); 

2) Der Controller empfängt die Anforderung einfach gut:

def update_dom 
<other stuff> 
    respond_to do |format| 
    format.js 
    end 
end 

3) WICHTIG: Die Datei update_dom.js.erb wird korrekt in der DEV-Umgebung gerendert, aber NICHT im Test mit Capybara + RSpec.

update_dom.js.erb: 
debugger; //first line, breakopint no stopp in Test 
<% unless %W(boolean datetime).include?(@operators[:type])%> 
$.each($('.values'), function(i, valueField){ 
<other stuff, etc...> 

Dies ist eigentlich die ganze Angelegenheit und wird zu schätzen wissen alle Gedanken auf sie

+0

Verwenden Sie tatsächlich Javascript-Treiber, um diese besondere Capybara-Test zu laufen? Ohne dies wird kein Javascript ausgelöst. Einfach, aber nur um sicher zu sein! – TomD

+0

Hallo, @TomD: Danke für deinen Kommentar. Ich nehme an, Sie beziehen sich auf die Option 'js: true', die es in meinem Test gibt, ja. – LegaTux

+0

könnten Sie Ihren Post bearbeiten, um Ihre rails_helper.rb und Ihren Spezifikationscode einzuschließen? Nur darüber nachdenken, Debugger Js-Deklaration stoppt js mit Debug-Tools aktiviert, nicht ganz sicher, dass diese in automatisierten Tests sind. Könntest du es versuchen und in js.erb den Debugger auf etwas wie <% raise> Error "%" umstellen und sehen ob es tatsächlich in dev AND test ausfällt? – TomD

Antwort

0

Ich hatte einen Fehler auf meiner *.js.erb-Datei, die nicht auf der Konsole Stack-Trace Entwickler reflektiert wurde. Ich war in der Lage, es zu debuggen mit folgenden Leitfaden (verwendet plain firefox anstelle von firebug aber immer noch gearbeitet): solution