Rspec& FactoryGirl:阻止生成电子邮件

时间:2015-04-23 09:08:39

标签: ruby-on-rails ruby rspec

最近我在生成我的邮件程序视图时运行rspec测试时遇到错误,这让我意识到,对于某些测试,由于工厂生成3或4封电子邮件(例如,我创建了一个Admin =>确认电子邮件是由设计生成。

如果发送电子邮件时测试的目的没有测试,有没有办法防止生成一些电子邮件?

1 个答案:

答案 0 :(得分:2)

你可以做几件事。首先,确保你有:

config.action_mailer.delivery_method = :test 

在config / environments / test.rb中(我很确定这是默认设置)。这可确保电子邮件不会发送。但是,这仍然会生成它们,然后将它们放在一个数组中(ActionMailer::Base.deliveries)。

要阻止它们生成,您可以模拟出您的邮件程序方法。类似的东西:

allow(MyMailer).to receive(:my_method).and_return { double("Mailer", :deliver => nil)}