Я пытаюсь выполнить rspecs для пользовательского отложенного задания (GetPage:: GetPageJob), но у меня есть проблема.
Когда я выполняю их, задания хорошо ставятся в очередь (то есть хорошо вставленный в delayed_jobs таблицу), но они не обрабатываются рабочим задания. Действительно, после запускающихся "граблей jobs:work RAILS_ENV=test" в первом терминале, и после выполнения спецификаций во втором терминале, я не вижу вывода от рабочего задания в первом терминале.
С другой стороны, задания хорошо обрабатываются, если я ставлю в очередь их через "тест сценария/консоли". Таким образом, я немного смущен.
И со спецификациями и со сценарием/консолью, строка я использую для постановки в очередь моих заданий:
Delayed::Job.enqueue GetPage::GetPageJob.new("http://cnn.com")
Какая-либо идея?
В прошлом я пытался провести сквозное тестирование логики -> отложенного задания -> выполнения задания, и это было слишком много вещей. Я думаю, что вместо того, чтобы тестировать весь этот сладкий процесс с помощью RSpec, вы можете сосредоточиться на тестировании каждого аспекта.
Итак, тестируем, что задание вставляется. Затем, есть еще один тест, который проверяет, что должно произойти, когда задание выполняется.
В качестве альтернативы, создайте имитацию отложенного задания, чтобы при регистрации задания оно выполнялось сразу же.