在Rails應用程序我有一個調用一個服務對象如何測試服務對象是否使用正確的參數進行了初始化?
class MyJob < ActiveJob::Base
def perform(obj_id)
return unless object = Object.find(obj_id)
MyServiceObject.new(object).call
end
end
我可以測試作業調用服務對象如下後臺作業:
describe MyJob, type: :job do
let(:object) { create :object }
it 'calls MyServiceObject' do
expect_any_instance_of(MyServiceObject).to receive(:call)
MyJob.new.perform(object)
end
end
但是如何測試工作用正確的參數初始化服務對象?
describe MyJob, type: :job do
let(:object) { create :object }
it 'initializes MyServiceObject with object' do
expect(MyServiceObject.new(object)).to receive(:call)
MyJob.new.perform(object)
end
end
我想實現類似上面的內容,但是這個失敗,因爲expects 1 but received 0
。
正確地初始化測試類的正確方法是什麼?
很好,謝謝! –