Ruby on rails 如何使用Rspec测试电子邮件发送?
使用rspec和Rails测试电子邮件发送的最佳实践和工具是什么 例如,我如何测试电子邮件是否已发送,或者我应该测试什么才能进行有效的测试和可接受的覆盖率 如果你们需要一个例子,我将如何去测试这个:Ruby on rails 如何使用Rspec测试电子邮件发送?,ruby-on-rails,ruby,tdd,rspec,Ruby On Rails,Ruby,Tdd,Rspec,使用rspec和Rails测试电子邮件发送的最佳实践和工具是什么 例如,我如何测试电子邮件是否已发送,或者我应该测试什么才能进行有效的测试和可接受的覆盖率 如果你们需要一个例子,我将如何去测试这个: class UserMailer < ActionMailer::Base def jobdesc_has_been_reviewed(user, title) @body[:title] = title @body[:jobdesc] = jobdesc @b
class UserMailer < ActionMailer::Base
def jobdesc_has_been_reviewed(user, title)
@body[:title] = title
@body[:jobdesc] = jobdesc
@body[:url] = "http://" + user.account.subdomain + "." + Constants::SITE_URL + "/jobdescs/#{jobdesc.id}"
end
end
class UserMailer
您到底想测试什么
您想测试电子邮件是否真的发送了吗
我不建议这样做,因为这会使您的测试速度变慢,而且这实际上取决于您运行测试所使用的机器(网络连接、smtp服务器)
我通常做的是确保发送电子邮件的控制器操作/模型/rake任务正确运行(这意味着没有错误,我将终止最后的发送调用)。
我还要确保邮件的正文、标题和收件人是正确的
编辑:
与测试没有直接关系,但我只是想到了这一点
我喜欢他使用模型发送电子邮件的观点。
因此,要更详细地解释一下:
我将使用控制器设置视图变量,如
@正文,@标题,@收件人
因此,我将测试给定正确参数的邮件模板(即视图)是否正确呈现。
在我看来,这是错误可能发生的原因
今天晚些时候回家后,我将用示例更新这篇文章。电子邮件规范看起来像一个很好的库
我真的不知道要测试什么。。。我正在寻找一个正确的覆盖范围(比如说,测试电子邮件是否已发送,是否包含有效信息)。你能告诉我你如何去做你在最后一段中描述的事情吗?我是rspec的新手,所以你能给我的信息越多,我就越高兴:)谢谢,我没有尝试过,但这个库封装了我使用的技术。我已经将电子邮件规范与rspec和Cucumber一起使用,它看起来正是你要找的。我已经测试过了,很棒!谢谢