Как тестировать заголовки электронной почты с помощью RSpec

Я использую SendGrid SMTP API в моем приложении Rails для отправки электронных писем. Однако у меня возникают проблемы с тестированием заголовка электронной почты ("X -SMTPAPI ") с использованием RSpec.

Вот как выглядит электронное письмо (получено из ActionMailer :: Base.deliveries):

#, 
>, 
, 
>, 
, , 
, , 
> 

Вот мой код спецификации (который не удался):

ActionMailer::Base.deliveries.last.to.should include("foo@bar.com")

Я также пробовал различные методы для получить заголовок ("X-SMTPAPI") и тоже не сработало:

mail = ActionMailer::Base.deliveries.last
mail.headers("X-SMTPAPI") #NoMethodError: undefined method `each_pair' for "X-SMTPAPI":String

Справка?

Обновление (ответ)

Оказывается, я могу сделать это, чтобы получить значение заголовка электронного письма:

mail.header['X-SMTPAPI'].value

Однако возвращаемое значение находится в формате JSON. Затем все, что мне нужно сделать, это его декодировать:

sendgrid_header = ActiveSupport::JSON.decode(mail.header['X-SMTPAPI'].value)

, который возвращает хеш, где я могу сделать это:

sendgrid_header["to"] 

, чтобы получить массив адресов электронной почты.

]

16
задан Lim Cheng Soon 20 December 2011 в 10:47
поделиться