gpt4 book ai didi

ruby-on-rails - Rspec - 如何测试邮件程序是否使用了正确的模板

转载 作者:行者123 更新时间:2023-12-01 22:54:52 27 4
gpt4 key购买 nike

有很多关于如何测试邮件程序的信息。

但是我还没有找到任何资源如何测试邮件程序以检查它们是否真的使用正确的模板。

例子:

class NewsletterMailer < ActionMailer::Base
include SendGrid
default from: -> { SystemConfiguration.newsletter_from_email }

def send_newsletter_to_groups(newsletter_campaign_id, group_ids)
newsletter_campaign = NewsletterCampaign.find newsletter_campaign_id
emails = Group.where(:id => group_ids).map(&:emails).flatten
build_and_send_email(newsletter_campaign, emails)
end
end

app/views/newsletter_mailer/send_newsletter_to_group.html.erb我有 错别字 .

我写了 send_newsletter_to_group.html.erb而不是 send_newsletter_to_groups.html.erb
我的规范仍然通过:
require "spec_helper"

describe NewsletterMailer do

before { create(:system_configuration) }
let(:newsletter) { create(:newsletter_campaign) }

describe '.send_newsletter_to_groups' do
before do
create(:system_configuration)
create_list(:group, 3)
create_list(:user, 2, groups: [Group.first], newsletter_subscription: true)
create_list(:user, 2, groups: [Group.last], newsletter_subscription: true)
create_list(:user, 2, name: "pippo")
end
let(:group_ids) { Group.pluck(:id) }
subject { NewsletterMailer.send_newsletter_to_groups(newsletter.id, group_ids) }

its(:to) { should == User.where("name != 'pippo'").map(&:email) }
its(:from) { should be_present }
its(:subject) { should be_present }
end

end

但电子邮件不包含正文。

它只是发送空白电子邮件,因为在部分名称 ( send_newsletter_to_group.html.erb ) 我有错字。

如何测试这个?在梅勒。

最佳答案

我用 email spec为了这。

it "should contain the user's message in the mail body" do
@email.should have_body_text(/Jojo Binks/)
end

只需查找一些您知道是模板一部分的文本即可。

关于ruby-on-rails - Rspec - 如何测试邮件程序是否使用了正确的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com