我有以下Rails工作(使用Faktory-worker gem)
class MyJob
include Faktory::Job
def perform(id)
obj = Model.find(id)
email = Mailer.email_template(obj)
if(email.deliver)
// do some stuff
end
end
end
我能够编写一个简单的测试,但是由于无法在条件条件中存根liver方法而陷入困境。关于如何进行设置以便通过测试的任何想法?
it "sends an e-mail" do
mailer = class_double("Mailer").as_stubbed_const(:transfer_nested_constants => true)
// this does not work
mailer.stub(:deliver) { true }
expect(mailer).to receive(:email_template).with(obj)
MyJob.new.perform(obj.id)
end