У меня есть приложение Node, которое подключается к Twitter REST и API потоковой передачи. Чтобы протестировать код, который делает запросы к REST API, я могу использовать Nock для перехвата HTTP-запроса и возврата фиктивных данных следующим образом:
var nock = require('nock')
var mockData = [...]
nock('https://api.twitter.com/1.1')
.get('/search/tweets.json')
.reply(200, mockData)
Мое приложение также подключается к конечной точке потокового API statuses / filter и выполняет некоторый анализ твитов, полученных через потоковый API. В README Нока говорится, что вы можете передать функцию .query()
, которая возвращает поток, однако мне не удалось заставить это работать.
Как мне вернуть фиктивные данные из запросов к этой конечной точке с помощью Nock (или другой библиотеки, если необходимо)? В идеале я бы хотел иметь возможность отправлять твиты в поток в моих тестах всякий раз, когда мне нужно, например:
it('should correctly process tweets coming in on the streaming API', () => {
var mockTweet = {...}
sendMockTweetToStream(mockTweet)
...verify that the mock tweet was received and processed
})