【发布时间】:2014-07-29 16:11:09
【问题描述】:
我的问题是关于如何指定回调以正确方式发送电子邮件。
我有一个名为Question 的模型。创建question 后,我有一个回调after_create 来发送电子邮件。
我想创建一个 rpsec 来测试这个方法。但是,我已经为每个 Mailer 制定了规范,用于验证电子邮件是否实际发送以及收件人。
所以,我想知道在after_create 中是否应该测试send_mail 方法的调用或检查最后发送的电子邮件是否存在?因为,就像我说的,电子邮件本身的测试在邮件spec/mailers/question_mailer_spec.rb的规范中
型号:
class Question < ActiveRecord::Base
after_create :send_email
def send_email
QuestionMailer.send_email(:questioned, self.id)
end
Rspec:
describe "#send_email" do
it "should sends email after create" do
expect(QuestionMailer).to receive(:send_email).with(:questioned, **question.id**)
question = create(:question)
end
end
谢谢!
【问题讨论】:
标签: ruby-on-rails rspec