Как я могу издеваться над потоковыми звонками клиентов в rspec?

Использование rspec и драгоценного камня Twitter https://github.com/sferik/twitter

Я пытаюсь найти решение для идеальной трансляции потока в твиттере с помощью такого механизма, как видеомагнитофон. Очевидно, что видеомагнитофон не работает на соединениях TCP-сокета только HTTP-запросов.

Если это слишком много, чтобы спросить, любые намеки о том, где заглушки, что было бы полезно.

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")
Другие вопросы по тегам