Ruby on rails Rails 5电子邮件拦截器rspec测试
我正在努力防止向残疾用户发送意外电子邮件。我认为最好的方法是注册邮件截取器,并在每页上挂入Ruby on rails Rails 5电子邮件拦截器rspec测试,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我正在努力防止向残疾用户发送意外电子邮件。我认为最好的方法是注册邮件截取器,并在每页上挂入发送电子邮件方法 这是我的初始值设定项的代码(config/initializers/email\u interceptor.rb): 然后我尝试将测试添加到我的应用程序中,这样我就可以确保用户可以注册开始,这就是测试的样子: let(:from) { 'a@foo.com' } let(:to) { 'b@foo.com' } subject { ActionMailer::Base.mail
发送电子邮件方法
这是我的初始值设定项的代码(config/initializers/email\u interceptor.rb
):
然后我尝试将测试添加到我的应用程序中,这样我就可以确保用户可以注册开始,这就是测试的样子:
let(:from) { 'a@foo.com' }
let(:to) { 'b@foo.com' }
subject { ActionMailer::Base.mail(to: to, from: from).deliver }
it 'sends emails to non existing users' do
expect { subject }.to change(ActionMailer::Base.deliveries, :count)
end
我得到一个错误:
Failure/Error: subject { ActionMailer::Base.mail(to: to, from: from).deliver }
ActionView::MissingTemplate:
Missing template action_mailer/base/mail with "mailer". Searched in:
* "action_mailer/base"
# ./spec/mailers/email_interceptor_spec.rb:6:in `block (2 levels) in <top (required)>'
失败/错误:主题{ActionMailer::Base.mail(to:to,from:from).deliver}
ActionView::缺少模板:
缺少模板操作\u mailer/base/mail和“mailer”。搜索:
*“行动\邮递员/基地”
#./spec/mailers/email\u interceptor\u spec.rb:6:in“block(2级)in”
我在这里做错了什么吗?我正在使用rails5.1.0
,我想知道mailer api是否发生了变化或其他什么。将主题更改为:
subject do
ActionMailer::Base.mail(to: to, from: from, subject: 'test', body: 'test').deliver
end
没有使用模板。还有其他方法,这似乎对这里描述的问题有效
subject do
ActionMailer::Base.mail(to: to, from: from, subject: 'test', body: 'test').deliver
end