3
메일러를 테스트하는 방법에 대한 많은 정보가 있습니다.Rspec - 메일러가 적절한 템플릿을 사용하고 있는지 테스트하는 방법
그러나 메일러가 올바른 템플릿을 사용하고 있는지 확인하기 위해 메일러를 테스트하는 방법에 대한 리소스가 없습니다.
예 : 나는 오타이 app/views/newsletter_mailer/send_newsletter_to_group.html.erb
에
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
.
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
대신
send_newsletter_to_groups.html.erb
을 썼다.
그냥 공백으로 이메일을 보내고, 부분의 이름으로 cuz (send_newsletter_to_group.html.erb
)를 입력합니다.
테스트 방법? 메일러에서.
작동합니다.하지만 ... 외부 라이브러리를 사용하지 않고 이것을 테스트하는 방법을 알고 있습니까? –
라이브러리없이 테스트하지 않았고 시도하지 않았습니다. 원하는 경우 코드를 파고 어떻게 작동하는지 확인할 수 있습니다. 개인적으로, 필자는 외부 라이브러리를 피하는 순도보다는 그것이 추가하는 가독성을 선호합니다. –