2013-05-27 7 views
6

Ich experimentiere gerade mit ActionController :: Live und ich kann nicht herausfinden, wie man das richtig testet.Wie testet man mit Rspec und ActionController :: Live beim Schreiben in Rails 4?

In meinem Controller Ich habe diese

geschrieben
 response.stream.write("event: #{event}\n") 
     response.stream.write("data: #{post.to_json}\n\n") 

Aber wenn ich das Objekt in meinem rspec Test überprüfen Ich sehe diese

 (rdb:1) response.stream.instance_variable_get(:@buf) 
     ["event: event\n"] 

Als ich die "Daten" in den Stream schreiben, ich kann nicht herausfinden, warum es nicht im Array angezeigt wird. Wenn ich die erste response.stream.write-Zeile entferne, gibt der buf ein leeres Array zurück.

Antwort

3

Das Problem herausgefunden. Der Aufruf von to_json in der Datei stream.write fügt den Stream nicht zur Variablen buf instance hinzu. also habe ich nach_json gedrückt und einen Rückgabewert erzwungen, jetzt kann ich sicherstellen, dass der Stream richtig schreibt

Verwandte Themen