ActiveJob::Base#perform のブラックボックステスト
作法として正しいかどうかはわからないですが、queue_adapter = :inline
にしてperform_later
すればすぐ実行されるからブラックボックステストはできそう
require 'rails_helper' RSpec.describe SendToChatworkJob, :type => :job do before :all do SendToChatworkJob.queue_adapter = :inline end describe '#perform' do let(:rid) { 1000 } let(:body) { 'message' } it 'delegates to ChatWork::Message#create' do expect(ChatWork::Message).to receive(:create).with(room_id: rid, body: body) SendToChatworkJob.perform_later room_id: rid, body: body end end end
追記
別に:inlineにしなくてもperform_now
使えばよかった
require 'rails_helper' RSpec.describe SendToChatworkJob, :type => :job do describe '#perform' do let(:rid) { 1000 } let(:body) { 'message' } it 'delegates to ChatWork::Message#create' do expect(ChatWork::Message).to receive(:create).with(room_id: rid, body: body) SendToChatworkJob.perform_now room_id: rid, body: body end end end