RSpec tesiting for rake task [Ruby on Rails]

I summarized the procedure of the RSpec test in this article.
Since I summarized it as simple as possible, please read through those who are trying to create Rake task for the first time.

🍄 Creating a Rake task file

The following command creates a Rake task file in lib/tasks:

(Please change “report”.)

$ rails generate task report

Please write the following code in the above lib/tasks/report.rake:

namespace :report do
# desc is required
desc 'Generate report'

# : Environment is required to access Rails environment
task generate: :environment do
# Write something

After the coding, you can execute rake report:generate command!

🤔 RSpec for rake task

Executing rake task in RSpec

require 'rails_helper'
require 'rake'

describe 'rake task reporting' do
before(:all) do
@rake =
Rake.application = @rake
Rake.application.rake_require 'tasks/report' # Point 1

before(:each) do
@rake[task].reenable # Point 2

describe 'report:generate' do
let(:task) { 'report:generate' }
it 'is succeed' do
expect(@rake[task].invoke).to be_truthy

Executing model method

namespace :report
desc 'Generate report'
it 'generates report' do
# do something

It’s so simple to execute unit testing.
In addition, if you type ReportGenerator.generate on rails console, you can also perform exactly the same processing as the Rake task.

🐞 Special Thanks

🖥 Recommended VPS Service

VULTR provides high performance cloud compute environment for you. Vultr has 15 data-centers strategically placed around the globe, you can use a VPS with 512 MB memory for just $ 2.5 / month ($ 0.004 / hour). In addition, Vultr is up to 4 times faster than the competition, so please check it => Check Benchmark Results!!