我有一个UserMailDispatcher类,它的工作是根据某些条件通过ActiveMailer来传递邮件.
我正在尝试使用RSpec进行测试但是我的时间很短.我想以某种方式存根测试邮件程序,看看该类是否正确传递它.这是我到目前为止所拥有的:
我的所有邮件程序都从ApplicationMailer继承:
application_mailer.rb
class ApplicationMailer < ActionMailer::Base
append_view_path Rails.root.join('app', 'views', 'mailers')
end
user_mail_dispatcher_spec.rb
require 'rails_helper'
describe UserMailDispatcher do
class UserMailer < ApplicationMailer
def test_mail
mail
end
end
it "mails stuff" do
???
end
end
我想测试调度程序是否可以正确排队/传递邮件.但是,我似乎无法调用UserMailer.test_mail.deliver_now.我错过了模板’user_mailer / test_mail’我尝试添加type :: view到规范并使用stub_template’user_mailer / test_mail.html.erb’,但我得到了同样的错误.
我确实定义了UserMailer,但我不想在这里测试它的任何方法,因为它们更有可能改变.
关于如何最好地处理这个的任何想法?
最佳答案 当我使用DummyMailer进行测试时,我也遇到了这个问题并绕过它我只是要求mail方法返回如下的纯文本:
mail do |format|
format.text { render plain: "Hello World!" }
end
这是documentation for it,向下滚动一下,找到正确的部分.