Как я могу издеваться над потоковыми звонками клиентов в 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")