0

Я играю с tweetstream gem, что упрощает взаимодействие с Twitter streaming API. Я потоковом все твиты так же, как в примере кода, указанного на странице драгоценного камня:Как насмехаться с потоковым API с RSpec?

TweetStream::Client.new.sample do |status| 
    puts "#{status.text}" 
end 

Я поставил это в методе #capture с некоторой простой логикой, чтобы запустить поток всего за несколько секунд и захватить все твиты (строки status.text) в массиве.

Я хочу написать модульные тесты для #capture. Как я мог бы отключить поток твитов? Я предполагаю, что у меня будут твиты в магазине либо в файле, либо в объекте StringIO, но я не знаю, как писать макет, чтобы обрабатывать все TCP-взаимодействие с потоковым API. Я не уверен, должен ли я использовать видеомагнитофон здесь.

ответ

0

Читать статью по очень простому способу проверить внешние услуги с использованием видеомагнитофоне Gem https://robots.thoughtbot.com/how-to-stub-external-services-in-tests

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

 
client = Twitter::Client.new 
client.stub(:sample).and_yield(:message) 
Смежные вопросы