【问题标题】:How can I mock twitter streaming client calls within rspec?如何在 rspec 中模拟 twitter 流式客户端调用?
【发布时间】:2014-04-17 02:59:05
【问题描述】:

使用 rspec 和 twitter gem https://github.com/sferik/twitter

我正在尝试找到一种解决方案,以理想地使用 VCR 之类的机制来模拟 twitter 流。显然 VCR 不适用于 tcp 套接字连接,仅适用于 http 请求。

如果这个问题太多了,任何关于在哪里存根的提示都会有帮助。

【问题讨论】:

    标签: rspec twitter-streaming-api vcr twitter-gem


    【解决方案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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 2016-08-06
      • 2021-09-14
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多