rspec: как проверить redis опубликовать - PullRequest
0 голосов
/ 07 ноября 2018

Я использую гем 'realtime' для сообщения в реальном времени.

Учитывая что-то вроде (код с официального сайта)

# if using redis:
$redis.publish 'realtime_msg', {msg: 'hello world - ' + SecureRandom.hex, recipient_user_ids: [41, 42]}.to_json

Как я могу проверить этот код с помощью rspec?

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете добавить шпиона к $redis, чтобы утверждать, что publish вызывается с определенными аргументами, такими как:

expect($redis).to receive(:publish).with('realtime_msg', /hello world/)`

Последняя часть, /hello world.*recipient_user_ids/, является просто примером регулярного выражения, которое вы можете использовать для сопоставления строки JSON, которую вы предоставляете в качестве второго аргумента для publish. Там вы можете использовать пользовательское сопоставление или любое другое сопоставление аргументов rspec, которое соответствует вашим целям.

...