Solo me preguntaba cómo probar que las solicitudes de Actionmailer se envían realmente a la cola delayed_job en rspec.Rails/Rspec: Probar correos de retraso_trabajo
Hubiera supuesto que era bastante simple, pero mi cola de retraso de la tarea no parece estar aumentando. Código de abajo:
controlador:
def create
@contact = Contact.new(params[:contact])
if @contact.save
contactmailer = ContactMailer
contactmailer.delay.contact_message(@contact)
redirect_to(contacts_url)
else
render :action => "new"
end
Spec:
it "queues mail when a contact is created" do
expectedcount = Delayed::Job.count + 1
Contact.stub(:new).with(mock_contact()) { mock_contact(:save => true) }
post :create, :contact => mock_contact
expectedcount.should eq(Delayed::Job.count)
end
Tanto antes como después de la llamada al controlador, el Retraso :: Job.count devuelve 0. He intentado tomar el condicional fuera del controlador, pero todavía no puedo obtener el recuento de trabajo retrasado para incrementar.
Cualquier sugerencia apreciados - alegría
me gusta de esta manera. Tenga en cuenta que, para completar, también debería (por separado) probar que los trabajos retrasados se están agregando a la tabla delayed_jobs. – brittohalloran
Esto es resbaladizo, ¡gracias! – jpwynn