Job Code and Testing Strategies

Learn about job code and the job testing strategies in Ruby on Rails.

We'll cover the following

For all the reasons we don’t want business logic in our controllers, we don’t want business logic in our jobs. Likewise, for all the reasons we want to convert the raw data types being passed into richly typed objects in our controllers, we want to do that in our jobs, too.

We passed in a widget ID to our job, which means our job should locate the widget. After that, it should defer to another class that implements the business logic. Because this is still widget creation and the job is called PostWidgetCreationJob, we’ll create a new method on WidgetCreator called post_widget_creation and have the job trigger that.

Let’s write the job code and then fill in the new method. Because we aren’t using Active Job, we can’t use bin/rails g job. We also can’t use ApplicationJob in its current form, but it is nice to have a base class for all jobs. Let’s replace the Rails-provided ApplicationJob with one that is specific to Sidekiq.

Get hands-on with 1200+ tech skills courses.