Blog · Articles tagged with "actionmailer" · show all articles »

Testing async ActionMailer jobs with ActiveJob in Minitest

One of the fantastic new libraries that came with Rails 4.2 is ActiveJob - a standard interface to background queues like Sidekiq, Resque or Delayed Job. It lets you write your jobs using the ActiveJob syntax and decide on a background queue later. And if - a year from now - you are not happy with your choice of background queue anymore, you can switch it out without having to rewrite any of the worker code.

But the real power of ActiveJob is that it abstracts the implementation details of the different queuing backends and lets you develop additional tools and libraries around that central API. Any gem can now safely enqueue background jobs for example, without having to know what queue backend the application uses.

An important aspect of background jobs is the ability to test them of course. You want to make sure that a certain piece of code really enqueues a job, and that its the right job with the right parameters!

Read on