2016-11-30 9 views
5

के लिए रेल नौकरी पर रूबी को अक्षम करें मैं आरएसपीईसी के साथ नियंत्रक परीक्षण लिख रहा हूं और कार्रवाई पूर्ण होने के बाद, मेरा काम व्यवस्थापक उपयोगकर्ता को ईमेल भेजना चाहता था। लेकिन मैं अपने काम के लिए इस नौकरी को अक्षम करना चाहता हूं या इसे किसी तरह से नकल करना चाहता हूं। मैं यह कैसे कर सकता हूँ?परीक्षण

मैं delayed_job_active_record + daemons रत्न का उपयोग कर रहा हूं।

class AdminNotificationJob < ActiveJob::Base 
    queue_as :default 

    def perform(method, parameter) 
    User.admin.includes(:profile).each do |admin| 
     AdminMailer.send(method, admin, parameter).deliver_later 
    end 
    end 
end 

उत्तर

7
#config/environment/test.rb 
config.active_job.queue_adapter = :test 

# in spec 
expect { 
    your_action_that_triggers_job_enqueuing 
}.to have_enqueued_job(AdminNotificationJob).with(your_arguments) 
+1

config.active_job.queue_adapter = पाया #have_enqueued_job विधि का उपयोग करता: परीक्षण - यह मैं क्या था धन्यवाद, धन्यवाद! – divideByZero

1

आपका नियंत्रक परीक्षण इस प्रकार दिखाई देगा:

it "enqueues a AdminNotification" do 
    expect { 
    get :your_controller_action, {} 
    }.to have_enqueued_job(AdminNotificationJob) 
end 

इस पर rspec-rails

+1

एक साथ :) +1 –

+1

मुझे लगता है कि इसे 'जुड़वां' कहा जाता है? ;) – Anthony

संबंधित मुद्दे