繁体   English   中英

Rspec - 测试方法的实例

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM