В моей модели есть метод after_save для вызова некоторой фоновой задачи.Поскольку эта задача зависит от работоспособности другого сервера, я подумал, что было бы неплохо создать запасной вариант для выполнения задачи в главном потоке при сбое вызова на другой сервер.
Это в основном обратный вызов:
def send_email
MyJob.perform_async(self.id)
rescue Errno::ECONNREFUSED
MyJob.new.perform(self.id)
end
Теперь я бы хотел проверить это поведение.Я попытался высмеять MyJob и вызвать исключение для метода perfrom_async.Но как мне проверить, что в экземпляре вызывается выполнение?
Я уже пробовал:
it "should use fallback to send e-mail after create when faktory is down" do
job = class_double("MyJob").
as_stubbed_const(:transfer_nested_constants => true)
allow(job).to receive(:perform_async) { raise Errno::ECONNREFUSED }
expect_any_instance_of(job).to receive(:perform)
company_opt_out
end
Спасибо