div*_*ero 7 ruby rspec ruby-on-rails delayed-job rails-activejob
我正在用rspec编写控制器测试,在完成操作后,我的工作应该发送给管理员用户的电子邮件.但我想为我的测试禁用这项工作或以某种方式嘲笑它.我怎样才能做到这一点?
我正在使用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
Run Code Online (Sandbox Code Playgroud)
And*_*eko 10
#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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |