2013-05-27 3 views
6

Obecnie eksperymentuję z ActionController :: Live i nie mogę wymyślić, jak to właściwie przetestować.Jak testować za pomocą Rspec i ActionController :: Na żywo podczas zapisu do strumienia w Railsach 4?

W moim kontroler mam to napisane

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

Ale kiedy skontrolować obiekt w moim rspec testu widzę ten

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

Kiedy piszę "dane" do strumienia, I nie mogę się domyślić, dlaczego whyit nie pojawia się w tablicy. Kiedy usuwam pierwszą linię response.stream.write, bufor zwraca pustą tablicę.

Odpowiedz

3

Wyjąłem problem. Wywołanie funkcji to_json w pliku stream.write nie powoduje dodania strumienia do zmiennej instancji buf. więc zgasiłem to_json i wymusiłem wartość zwrotu, teraz mogę się upewnić, że strumień poprawnie pisze