2013-05-27 7 views
6

Attualmente sto sperimentando con ActionController :: Live e non riesco a capire come testarlo correttamente.Come testare con Rspec e ActionController :: Live mentre si scrive sullo stream in Rails 4?

Nel mio controller ho questo scritto

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

Ma quando ho ispezionare l'oggetto nel mio test rspec vedo questo

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

Quando scrivo i "dati" al flusso, ho non riesco a capire perché non si presenta nell'array. Quando rimuovo la prima riga response.stream.write, il buf restituisce una matrice vuota.

risposta

3

Calcolato il problema. Chiamando to_json nello stream.write non si aggiunge lo stream nella variabile di istanza buf. così ho cancellato to_json e forzato un valore di ritorno, ora posso assicurarmi che lo stream stia scrivendo correttamente