[英]Rspec - Testing an instance of a method
我实现了一个条件,如果用户的电子邮件没有得到确认,他们就不会收到电子邮件。 我的逻辑是,如果电子邮件未经过验证/确认,则返回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
的实例
错误告诉您问题出在哪里? 您需要一个邮件类型对象的实例,因此将其更改为此。 此外,您应该能够在be_a
中使用be_a
方法代替be_an_instance_of
参见文档
expect(TestMailer.test_mail(expired_account).message)
.to be_an(ActionMailer::Base::NullMail)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.