如何访问Rails邮件消息对象中的<from>字段?</from>

时间:2011-09-08 11:29:43

标签: ruby-on-rails actionmailer

我有一个消息对象@mail,我想测试“from”名称是否包含字符串:

@mail.from.should include @author.name

但是,@mail.from只是邮件发送到的地址数组,没有提到应该给出地址的标签。

如何访问“from”标签,以便我可以测试它包括作者姓名?

2 个答案:

答案 0 :(得分:2)

如果您打开email-spec gem,您可以看到它实际上正在检查

的值
@actual_sender = (email.header[:from].addrs || []).first

因此,如果您不想使用额外的gem依赖项,可以针对header[:from].to_s进行测试。

我有同样的问题,放弃了,在stackoverflow上写了一个详细的问题,并在“类似问题”中找到了这个问题。有趣的是如何运作......

答案 1 :(得分:1)

您可以使用email-spec gem。 我的应用程序中的一些测试示例

  include EmailSpec::Helpers
  include EmailSpec::Matchers

  describe "admin details" do
    before { @admin = Factory :admin }
    subject { Mailer.admin_profile_details @admin }
    it { should deliver_to @admin.email }
    it { should have_subject 'Your account' }
    it { should have_body_text /email/i }
  end