ほとんど定型文です。理解しないでもかけます。
lib/tasks/sample.rake
task sample: :environment do
user = User.first
user.destroy!
end
spec/lib/tasks/sample_spec.rb
require 'rails_helper'
require 'rake'
describe 'sample' do
before(:all) do
@rake = Rake::Application.new
Rake.application = @rake
Rake.application.rake_require('sample', ["#{Rails.root}/lib/tasks"])
Rake::Task.define_task(:environment)
end
describe 'sample' do
subject { @rake['sample'].execute }
it 'returns hoge' do
user = create(:user)
expect{ subject }.to change(User, :count).by(-1)
end
end
end