2016-10-03 7 views
0

Иногда у меня возникает ситуация, когда один и тот же рабочий работает дважды - когда пользователь отправляет запросы быстро, один за другим. Я добавил условие: если рабочий уже был запущен, а внутри рабочего payload - класс Importer - не разрешайте второй раз запускать очередь.RSpec: тестирование sidekiq worker для состояния гонки

Теперь мне нужно сделать спецификацию. Я думаю, что называть чем-л, как это не является хорошим способом:

before { 2.times { Importer.perform } } 

Что такое лучший способ проверить работника для такого состояния гонки? (как правило: каким образом тестировать работника Sidekiq, когда вам нужно выполнить один и тот же запрос дважды или более)

ответ

0

Хорошо, так что ответов не было.

Я решил просто заглушить его. Внутри класса импорта у меня есть Sidekiq::Workers.new, поэтому внутри спецификации я разместил let(:sidekiq_workers) блок со всеми параметрами рабочего, например queue, payload, args и так далее.

Затем внутри блока it Я вызываю метод, проверяющий, существует ли такой запрос. Этот тест проходит и возвращает «true». У меня есть еще один блок it без обрезанных рабочих стороны и тестовые проходы с «ложным».

Смежные вопросы