Подтвердить что ты не робот

Какой лучший способ проверить цепи delayed_job с rSpec?

В настоящее время, когда у меня есть отложенный метод в моем коде, например следующее:

CommentMailer.delay.deliver_comments(@comment, true)

Я пишу что-то подобное в моей спецификации:

dj = mock("DelayProxy")
CommentMailer.should_receive(:delay).and_return(dj)
dj.should_receive(:deliver_comments).with(comment, true)

Есть ли лучший способ справиться с этими и/или закодированными методами, такими как rSpec в целом?

4b9b3361

Ответ 2

У нас может быть только одна строка в блоке до:

CommentMailer.stub(:delay).and_return(CommentMailer)

Затем вы можете выполнить обычную проверку, как показано ниже:

CommentMailer.should_receive(:deliver_comments).with(comment, true)

Ответ 3

describe '#perform' do
    subject do
      Delayed::Worker.delay_jobs = false
      proc { worker.perform() }
    end

    it { is_expected.to change { ActionMailer::Base.deliveries.length }.by(2) }
  end

Задайте задержанное задание как false, и u может проверить его как простой