【发布时间】:2013-11-07 21:11:50
【问题描述】:
我正在尝试测试一个邮件发送方法,它应该只向经过验证的用户发送邮件。
所以我的邮件中有这样的方法:
def send_hints(user)
@user = user
mail :to => user.email, :subject => "Your hints for the day"
end
我正在努力确保只有经过验证的用户才能收到此信息。所以 user.verified_at 不是 null/nil。
现在开始写测试:
describe "Emails should be sent only to verified user"
let(:user) { FactoryGirl.create(:user, :verified_at => DateTime.now) }
let(:mail) { UserMailer.send_hints(user) }
...
我不确定在这里断言什么是明智的? 如果我以相反的方式发送邮件,则应该发送或不发送邮件。
【问题讨论】:
-
电子邮件何时发送?创建用户后?经过一些动作?您应该测试一下,当该操作对经过验证的用户完成时,UserMailer 会收到用户的“send_hints”,并且在同一操作中,如果用户未经过验证,则 UserMailer 不会收到该方法调用。目前尚不清楚何时会为您提供更多帮助。
标签: ruby-on-rails ruby rspec