Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用Rspec测试电子邮件发送?_Ruby On Rails_Ruby_Tdd_Rspec - Fatal编程技术网

Ruby on rails 如何使用Rspec测试电子邮件发送?

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

使用rspec和Rails测试电子邮件发送的最佳实践和工具是什么

例如,我如何测试电子邮件是否已发送,或者我应该测试什么才能进行有效的测试和可接受的覆盖率

如果你们需要一个例子,我将如何去测试这个:

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一起使用,它看起来正是你要找的。我已经测试过了,很棒!谢谢