如何在Rails 4中写入流时使用Rspec和ActionController::Live进行测试?

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"]

当我将“data”写入流中时,我无法理解为什么它不会显示在数组中。当我删除第一行response.stream.write时,buf返回一个空数组。

1个回答

3

问题已经解决。在stream.write中调用to_json不会将流添加到buf实例变量中。因此,我对to_json进行了存根处理,并强制返回一个值,现在我可以确保流正常写入。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接