使用rspec和twitter gem https://github.com/sferik/twitter
我正在尝试使用像VCR这样的机制找到一个理想的模拟推特流的解决方案。显然,VCR不能仅在http请求的tcp套接字连接上工作。
如果这个问题太多了,那么任何关于在哪里存根什么都会有所帮助的提示。
答案 0 :(得分:1)
所以我发现最好的存根地点是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")