Rakeタスクのテスト
Rakeタスクのテストを少し簡単にするために、標準のSpecヘルパーの代わりに含めることができるヘルパーがあります。require 'spec_helper'
の代わりにrequire 'rake_helper'
を使ってください。このヘルパーにはspec_helper
が含まれており、Rake タスクのテストを簡単にするための他のいくつかの設定も含まれています。
最低限、Rake ヘルパーが必要であれば、ランタイムタスクヘルパーが含まれ、RakeHelpers
Spec サポートモジュールが含まれます。
RakeHelpers
モジュールはrun_rake_task(<task>)
メソッドを公開し、タスクの実行を簡単にします。利用可能なすべてのメソッドについては、spec/support/helpers/rake_helpers.rb
を参照してください。
$stdout
は:silence_stdout
を追加することでリダイレクトできます。
使用例:
require 'rake_helper'
describe 'gitlab:shell rake tasks', :silence_stdout do
before do
Rake.application.rake_require 'tasks/gitlab/shell'
stub_warn_user_is_not_gitlab
end
describe 'install task' do
it 'invokes create_hooks task' do
expect(Rake::Task['gitlab:shell:create_hooks']).to receive(:invoke)
run_rake_task('gitlab:shell:install')
end
end
end