Как получить доступ к полям <from>в объекте почтового сообщения Rails? - PullRequest
2 голосов
/ 08 сентября 2011

У меня есть объект сообщения, @mail, и я хотел бы проверить, что имя "from" содержит строку:

@mail.from.should include @author.name

однако, @mail.from - это просто массив адресов, на которые должно быть отправлено письмо, нет никакого упоминания о том, на какую метку следует указывать адреса.

Как я могу получить доступ к метке "from", чтобы я мог протестировать ее, включая имя автора?

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Если вы откроете гем email-спецификации, вы увидите, что он на самом деле проверяет значение

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

Так что, если вы хотите обойтись без дополнительной зависимости от гемов, вы можете проверить header[:from].to_s или что-то подобное.

У меня возникла та же проблема, я сдался, написал подробный вопрос здесь о stackoverflow и нашел этот вопрос среди "Похожие вопросы" Забавно, как это работает ...

1 голос
/ 08 сентября 2011

Вы можете использовать для этого 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
...