Използвам rspec-rails и искам да тествам, че моята поща изобразява правилния шаблон за изглед.
describe MyMailer do
describe '#notify_customer' do
it 'sends a notification' do
# fire
email = MyMailer.notify_customer.deliver
expect(ActionMailer::Base.deliveries).not_to be_empty
expect(email.from).to include "[email protected]"
# I would like to test here something like
# ***** HOW ? *****
expect(template_path).to eq("mailers/my_mailer/notify_customer")
end
end
end
Това валиден подход ли е? Или да направя нещо съвсем различно от това?
Актуализация
MyMailer#notify_customer
може да има някаква логика (напр. в зависимост от локала на клиента) за избор на различен шаблон при различни обстоятелства. Това е повече или по-малко подобен проблем с контролерите, изобразяващи различни шаблони за изглед при различни обстоятелства. С RSpec
можете да пишете
expect(response).to render_template "....."
и работи. Търся нещо подобно за мейлърите.