最近我在生成我的邮件程序视图时运行rspec测试时遇到错误,这让我意识到,对于某些测试,由于工厂生成3或4封电子邮件(例如,我创建了一个Admin =>确认电子邮件是由设计生成。
如果发送电子邮件时测试的目的没有测试,有没有办法防止生成一些电子邮件?
答案 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)}