Ответ 1
Вот несколько обсуждений методов цепочки в rSpec, которые я нашел полезными:
Привязка цепочек с помощью Rspec
http://groups.google.com/group/rspec/browse_thread/thread/6b8394836d2390b0#
В настоящее время, когда у меня есть отложенный метод в моем коде, например следующее:
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 в целом?
Вот несколько обсуждений методов цепочки в rSpec, которые я нашел полезными:
Привязка цепочек с помощью Rspec
http://groups.google.com/group/rspec/browse_thread/thread/6b8394836d2390b0#
У нас может быть только одна строка в блоке до:
CommentMailer.stub(:delay).and_return(CommentMailer)
Затем вы можете выполнить обычную проверку, как показано ниже:
CommentMailer.should_receive(:deliver_comments).with(comment, true)
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 может проверить его как простой