要使用rspec测试Rails动作邮件程序代码,通常需要像下面这样检查ActionMailer :: Base.deliveries.size:
it "sends an email successfully" do
expect { mail.deliver_now }.to change { ActionMailer::Base.deliveries.size }.by(1)
end
此测试的含义是什么?通过此测试我们可以找到哪种类型的错误?
IMO,一旦我调用了delivery方法,邮件将自动发送,这是ActionMailer的责任吗?为什么我们需要在测试代码中测试ActionMailer功能?