with tutorial tests test run rails how ruby-on-rails ruby rspec delayed-job

ruby-on-rails - tutorial - rspec with rails



¿Cuál es la mejor manera de probar las cadenas retrayed_job con rSpec? (3)

Actualmente, cuando tengo un método retrasado en mi código, como el siguiente:

CommentMailer.delay.deliver_comments(@comment, true)

Escribo algo como esto en mi especificación:

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

¿Hay una mejor manera de manejar esto y / o métodos encadenados como ese en rSpec en general?



Podemos simplemente tener una línea más en el bloque anterior de la siguiente manera:

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

Entonces usted puede tener el control simulado normal de la siguiente manera:

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

Establezca el trabajo demorado como falso y puede probarlo como simple