如何在轨道上使用"assert_enqueued_email_with" 7



我正在尝试遵循文档:

https://api.rubyonrails.org/classes/ActionMailer/TestHelper.html method-i-assert_enqueued_email_with

我的正常代码是:

UserMailer.with(website_id: @LastWebsite_id, subject: @subject, body: @Body).send_mail_to_subscriptions.deliver_later

文档中出现的以下代码运行良好:

assert_enqueued_emails 3

我的测试代码(代码我有问题是):

assert_enqueued_email_with UserMailer, :send_mail_to_subscriptions, args: {website_id: lastWebsiteId, subject: randomSubject, body: randomBody}

出现以下错误:

No enqueued job found with {:job=>ActionMailer::MailDeliveryJob, :args=>["UserMailer", "send_mail_to_subscriptions", "deliver_now", {:params=>{:website_id=>"310450396", :subject=>"AS9VZRJEuXNZ5ie", :body=>"QpNqUrwcCuXMXaS"}, :args=>[]}], :queue=>"default"}
{"job_class"=>"ActionMailer::MailDeliveryJob", "job_id"=>"27f4046a-aace-495b-911b-991e44d278e8", "provider_job_id"=>nil, "queue_name"=>"default", "priority"=>nil, "arguments"=>["UserMailer", "send_mail_to_subscriptions", "deliver_now", {"params"=>{"website_id"=>310450396, "subject"=>"AS9VZRJEuXNZ5ie", "body"=>"QpNqUrwcCuXMXaS", "_aj_symbol_keys"=>["website_id", "subject", "body"]}, "args"=>[], "_aj_ruby2_keywords"=>["params", "args"]}], "executions"=>0, "exception_executions"=>{}, "locale"=>"en", "timezone"=>"UTC", "enqueued_at"=>"2023-04-04T04:24:01Z", :job=>ActionMailer::MailDeliveryJob, :args=>["UserMailer", "send_mail_to_subscriptions", "deliver_now", {:params=>{:website_id=>310450396, :subject=>"AS9VZRJEuXNZ5ie", :body=>"QpNqUrwcCuXMXaS"}, :args=>[]}], :queue=>"default", :priority=>nil}

我期望成功通过测试

谢谢vladpisanov

下面的代码可以工作:

assert_enqueued_email_with UserMailer, :send_mail_to_subscriptions, args: {website_id: lastSubscription.website_id, subject: randomSubject, body: randomBody}

website_id的数据,应该完全像你使用的那样发送,而不是等效的。由于

最新更新