【发布时间】:2015-09-29 04:23:37
【问题描述】:
我正在尝试测试以确保通知邮件在无效记录后没有发送,但在测试完成之前我一直收到以下错误
"ActiveRecord::RecordInvalid:
it 'does not call send_email_notification' do
expect(NotificationMailer).not_to receive(:user_notification)
FactoryGirl.create(:invalid_user, shop: shop)
end
如何正确测试?
编辑:这是发送邮件的代码:
after_create :send_email_notification
private
def send_email_notification
if self.shop.email_notifications
NotificationMailer.user_notification(self).deliver_now
end
end
end
【问题讨论】:
-
由于触发了异常,这意味着存在验证问题,这是您尝试保存无效用户后的预期行为。这本身就确保没有邮件被发送。问题是您在代码中的哪个位置声明了发送电子邮件?是after_save,还是create?
-
创建后。那么我将如何为此编写规范?期望无效用户无效?
-
你能分享你实际发送邮件的代码部分吗?
标签: ruby-on-rails rspec