我在邮件方法中将参数传递给template_name
时指定mail
,如下所示:
MyMailerClass < ActionMailer::Base
def my_mailer_method
mail(subject: 'Mail Subject', template_name: 'ValidTemplate')
end
end
链接至Rails Guides以供参考 从mail()方法创建的类,Mail :: Message没有引用传入的template_name。是否有一个很好的方法为此编写单元测试?我试图抄袭一些方法并测试传入的内容,但到目前为止还没有运气。
答案 0 :(得分:0)
如果您正在使用Rspec,那么您可以声明该类使用某些参数接收mail
方法:
# ensure that you stub the method first so you can make assertions on it later
allow(MyMailerClass).to receive(:mail)
MyMailerClass.my_mailer_method
# verify the method was called with the proper arguments
expect(MyMailerClass).to have_received(:mail).with(template_name: "ValidTemplate")
来源:https://relishapp.com/rspec/rspec-mocks/v/3-5/docs/basics/expecting-messages
如果您使用的是其他测试框架,那么您可以使用Mocha等模拟库获得相同的结果。