6

我目前正在试验 ActionController::Live ,但我不知道如何正确测试它。

在我的控制器中,我写了这个

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

但是当我在我的 rspec 测试中检查对象时,我看到了这个

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

当我将“数据”写入流时,我无法弄清楚为什么它没有出现在数组中。当我删除第一个 response.stream.write 行时,buf 返回一个空数组。

4

1 回答 1

3

想通了这个问题。在 stream.write 中调用 to_json 不会将流添加到 buf 实例变量中。所以我删除了 to_json 并强制返回值,现在我可以确保流正在正确写入

于 2013-05-27T18:55:50.540 回答