Как протестировать DelayedJob с помощью Cucumber?

Мы используем DelayedJob для запуска некоторых из наших длительных процессов и хотели бы протестировать их с помощью Cucumber/Webrat.

В настоящее время мы вызываем Delayed::Job.work_off в потоке Ruby, чтобы выполнять работу в фоновом режиме, но ищем более надежное решение.

Каков наилучший подход для этого?

Спасибо.


person Sean    schedule 06.10.2010    source источник
comment
большинство людей используют Delayed:Job.work_off .. в чем проблема?   -  person Rishav Rastogi    schedule 07.10.2010
comment
Delayed::Job.work_off устарел. Вместо этого используйте `Delayed::Worker.new.work_off.   -  person Jonathan    schedule 20.05.2011


Ответы (1)


Основная проблема, которую я вижу с подходом Delayed:Job.work_off, заключается в том, что вы делаете явным в своих сценариях Cucumber что-то, что принадлежит внутренностям вашей системы. Смешивание обеих проблем противоречит духу функционального тестирования:

When I click some link # Some operation is launched in the background
And Jobs are dispatched # Delayed:Job.work_off invoked here
Then I should see the results...

Другая проблема заключается в том, что вы заполняете свои сценарии Cucumber повторяющимися шагами для отправки заданий по мере необходимости.

Подход, который я сейчас использую, заключается в запуске delayed_job в фоновом режиме, в то время как сценарии с огурцами выполняется. Вы можете проверить хуки Cucumber, которые я использую по этой ссылке.

person jmanrubia    schedule 07.10.2010
comment
реализация прикрепленного сообщения в блоге запускает отложенное задание, но фактически не запускает их - person siamii; 29.03.2012
comment
Ссылка мертва, поэтому вы всегда должны включать в свой ответ краткое изложение решения. - person Cyril Duchon-Doris; 02.06.2017