使用 rspec 和 twitter gem https://github.com/sferik/twitter
我正在尝试找到一种解决方案,以理想地使用 VCR 之类的机制来模拟 twitter 流。显然,VCR 仅适用于 http 请求的 tcp 套接字连接。
如果这个问题太多了,任何关于在哪里存根的提示都会有帮助。
使用 rspec 和 twitter gem https://github.com/sferik/twitter
我正在尝试找到一种解决方案,以理想地使用 VCR 之类的机制来模拟 twitter 流。显然,VCR 仅适用于 http 请求的 tcp 套接字连接。
如果这个问题太多了,任何关于在哪里存根的提示都会有帮助。
所以我发现存根的最佳位置在这里https://github.com/sferik/twitter/blob/master/lib/twitter/streaming/connection.rb#L21
首先通过SSLSocket#readpartial
在运行一个规范的规范文件中临时进行猴子补丁来记录您的流
module OpenSSL::SSL
class SSLSocket
F = File.open("fixtures/twitter/stream0.txt","w")
def readpartial(*args)
res = super(*args)
F.write res
F.flush
res
end
end
end
当你的夹具完成时。你可以存根喜欢:
OpenSSL::SSL::SSLSocket.any_instance.should_receive(:readpartial).with(1024).and_return(File.read("fixtures/twitter/stream0.txt")