【发布时间】:2021-12-12 08:16:26
【问题描述】:
我实现了一个条件,即如果用户的电子邮件未得到确认,他们就不会收到电子邮件。我的逻辑是,如果电子邮件未经过验证/确认,则返回ActionMailer::Base::NullMail.new 的实例。
我写了这个测试
if @user.verified?
next
else
ActionMailer::Base::NullMail.new
end
expect(TestMailer.test_mail(expired_account)).to be_an_instance_of(ActionMailer::Base::NullMail)
我得到的错误是
expected #<ActionMailer::MessageDelivery(#<ActionMailer::Base::NullMail:0x00007fb0f2f24090>)> to be a kind of ActionMailer::Base::NullMail
问题是,我怎样才能重新编写我的测试,以便我可以测试如果电子邮件未经过验证,它们应该返回ActionMailer::Base::NullMail.new 的实例
【问题讨论】:
-
我认为你必须使用
expect(TestMailer.test_mail(expired_account).message).to be.....,你需要使用message方法获取实际的电子邮件对象
标签: ruby-on-rails ruby rspec rspec-rails